我有一个大小为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)