from numpy import *
def swap_columns(my_array, col1, col2):
temp = my_array[:,col1]
my_array[:,col1] = my_array[:,col2]
my_array[:,col2] = temp
那么
swap_columns(data, 0, 1)
无法运行。然而,直接调用代码可以。
temp = my_array[:,0]
my_array[:,0] = my_array[:,1]
my_array[:,1] = temp
为什么会出现这个问题,我该怎么解决?错误提示为“IndexError: 0维数组只能使用一个()或者一个newaxes列表(和一个单独的...)作为索引”,这似乎意味着参数不是整数?我已经尝试将列转换为整数,但是没有解决问题。
[]
运算符由__getitem__()
处理,而带有[]
的赋值则由__setitem__()
处理。将临时副本分配给没有意义,因此 NumPy 数组的__setitem__()
实现不会这样做。) - Sven Marnach