用numpy填充数组?

2024-10-01 11:23:13 发布

您现在位置:Python中文网/ 问答频道 /正文

一个相当简单的问题,但我似乎找不到任何解决办法:

我试图在一个数组中使用两个数组的微分,并将它作为一个新结果插入到一个新数组中。。。我希望代码能澄清这个意图,即使它不起作用,因为python告诉我它不能将序列与数组计算结合起来。。。我怎样才能避开这个问题?提前谢谢!在

MeteorNum = 5
#Coordinate Setup:

XPos = np.random.randint(0, 600, (MeteorNum,1))
YPos = np.random.randint(0, 800, (MeteorNum,1))

XYPos = np.hstack((XPos,YPos))
XYPos = np.vstack((XYPos, XYPos[0]))
print XYPos

#Distances:
r = np.zeros((MeteorNum,MeteorNum))

for i in range(0, MeteorNum):
    for x in range(0, MeteorNum):
        r[x,i] = (XYPos[x,:] - XYPos[i,:])
r = r*10**5
print r

我得到的错误是:

^{pr2}$

Tags: 代码infornprangerandom数组print
2条回答

尝试在容器数组中添加dtype=

MeteorNum = 5
#Coordinate Setup:

XPos = nprand.randint(0, 600, (MeteorNum,1))
YPos = nprand.randint(0, 800, (MeteorNum,1))

XYPos = np.hstack((XPos,YPos))
XYPos = np.vstack((XYPos, XYPos[0]))
print XYPos

#Distances:
r = np.zeros((MeteorNum,MeteorNum),dtype=np.ndarray)

for i in range(0, MeteorNum):
    for x in range(0, MeteorNum):
        r[x,i] = (XYPos[x,:] - XYPos[i,:])
r = r*10**5
print r

编辑

The dtype argument indicate the desired data-type for the array, e.g., numpy.int8. Default is numpy.float64.

要删除错误,我认为您需要在数组r中添加一个大小为2的额外维度:

r = np.zeros((MeteorNum,MeteorNum,2))

因为for循环中的XYPos[x,:] - XYPos[i,:]的形状是(2,)

这将返回形状(5, 5, 2)的单个数组。在

相关问题 更多 >