我正在尝试使用迭代过程根据现有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,所以我需要依赖于串联或堆栈。但是这些函数是设计用来连接现有数组的,直到循环的第一次迭代之后,我才可以连接或堆叠任何东西。因此,我想我需要更改数据流,但是我不确定该如何处理。
任何帮助将不胜感激。预先感谢。
答案 0 :(得分:1)
该函数为numpy.meshgrid [1],该函数默认情况下会执行此操作。
[1] https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.meshgrid.html