逐行构造NumPy矩阵

时间:2018-10-24 16:35:47

标签: numpy python-3.6

我正在尝试使用迭代过程根据现有2D NumPy数组中的值构造2D NumPy数组。使用普通的python列表,我正在描述的过程看起来像这样:

coords = #data from file contained in a 2D list
d = #integer
edges = []
for i in range(d+1):
    for j in range(i+1, d+1):
        edge = coords[j] - coords[i]
        edges.append(edge)

但是,NumPy数组施加了不允许上述过程的限制。下面,我尝试使用NumPy数组执行相同的操作,并且应该立即清楚问题出在哪里:

coords = np.genfromtxt('Energies.txt', dtype=float, skip_header=1)
d = #integer
#how to initialize?
for i in range(d+1):
    for j in range(i+1, d+1):
        edge = coords[j] - coords[i]
        #how to append?

因为NumPy数组不存在.append,所以我需要依赖于串联或堆栈。但是这些函数是设计用来连接现有数组的,直到循环的第一次迭代之后,我才可以连接或堆叠任何东西。因此,我想我需要更改数据流,但是我不确定该如何处理。

任何帮助将不胜感激。预先感谢。

1 个答案:

答案 0 :(得分:1)

该函数为numpy.meshgrid [1],该函数默认情况下会执行此操作。

[1] https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.meshgrid.html