在Python中为索引数组赋值



我有一个大小为300x5的数组在这里,如果索引为3的列和索引为4的列包含相应的值,则索引为3的列存在。

我已经创建了一个新的数组,我试图在这个新数组的索引3位置分配索引4中的值。我试过了,但是它抛出了一个错误。

new_arr[old_arr[:,3]] = old_arr[:,4]

其中一个例子与我要做的事情有关

new_arr = np.ones((200,1))
new_arr[[2,3,4]] = [22,44,11]

抛出错误

ValueError: shape mismatch: value array of shape (3,)  could not be broadcast to indexing result of shape (3,1)

使用此代码:new_arr[old_arr[:,3]]您尝试访问new_arr,索引来自old_arr[:,3]中的值,并且您得到IndexError

这个对你有帮助吗?

new_arr = np.zeros((300, 5))
new_arr[:,3] = old_arr[:,4]

对于编辑问题,您需要reshape:

new_arr = np.ones((200,1))
new_arr[[2,3,4]] = np.array([2,4,6]).reshape(3,1)
# OR
# new_arr[2:5] = np.array([22,44,11]).reshape(3,1)

相关内容

  • 没有找到相关文章

最新更新