使用另一个numpy数组元素对一个numpy数组进行索引会给出“TypeError:只有size1数组可以转换为Python标量”

2024-10-01 04:55:37 发布

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

我有以下代码

让我们将数组karr的行命名为s1,a,s2,r,t

>>> k = [[0.,0.,0.,-0.9,0.3],[0.,0.,1.,0.9,0.6]]
>>> import numpy as np
>>> karr = np.array(k)
>>> V = np.array([3,4])

我想为数组的每个元素s1,a,s2,r,t计算r+V[s2]。 所以,我想要的输出是[-0.9+V[int(0.)],0.9+V[int(1.)]]=[-0.9+3,0.9+4]=[2.1,4.9]。我尝试了以下操作,但出现以下错误:

>>> karr[:,3] + V[int(karr[:,2])]
Traceback (most recent call last):
  File "<string>", line 1, in <module>
TypeError: only size-1 arrays can be converted to Python scalars

V[karr[:,2]更改为V[int(1.0)]有效(尽管这不是我想要的):

>>> karr[:,3] + V[int(1.0)]
array([-0.9,  0.9])

如何使karr[:,3] + V[karr[:,2]]工作


Tags: 代码importnumpy元素as错误np数组
1条回答
网友
1楼 · 发布于 2024-10-01 04:55:37

问题是karr[:,2]不是整数,您可以这样做

karr[:,3] + V[karr[:,2].astype(int)]

#array([2.1, 4.9])

karr[:,2].astype(int)
array([0, 1])

不等于

V[1]
4

相关问题 更多 >