一个相当简单的问题,但我似乎没有找到任何解决方案:
我正在尝试使用数组中两个数组的差异并将其作为新结果插入到新数组中...我希望代码能够澄清这一意图,即使它不起作用,正如 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
这是我得到的错误:
runfile('C:/Users/Marco DS/Dropbox/1_TUDelft/4Q/AE1205 Python/python codes 2015/bonus assigments/week_5 Gravity simu.py', wdir='C:/Users/Marco DS/Dropbox/1_TUDelft/4Q/AE1205 Python/python codes 2015/bonus assigments')
[[249 660]
[256 605]
[119 423]
[422 398]
[480 504]
[249 660]]
Traceback (most recent call last):
File "<ipython-input-57-4cd9cc29ece0>", line 1, in <module>
runfile('C:/Users/Marco DS/Dropbox/1_TUDelft/4Q/AE1205 Python/python codes 2015/bonus assigments/week_5 Gravity simu.py', wdir='C:/Users/Marco DS/Dropbox/1_TUDelft/4Q/AE1205 Python/python codes 2015/bonus assigments')
File "C:\Users\Marco DS\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 682, in runfile
execfile(filename, namespace)
File "C:\Users\Marco DS\Anaconda\lib\site- packages\spyderlib\widgets\externalshell\sitecustomize.py", line 71, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "C:/Users/Marco DS/Dropbox/1_TUDelft/4Q/AE1205 Python/python codes 2015/bonus assigments/week_5 Gravity simu.py", line 37, in <module>
r[x,i] = (XYPos[x,:] - XYPos[i,:])
ValueError: setting an array element with a sequence.
最佳答案
尝试在容器数组中添加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.
关于python - 在 numpy 中用数组填充数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30351233/