说我有一个numpy数组x:
x = array([[ 3, 2, 1],
[ 3, 25, 34],
[ 33, 333, 3],
[ 43, 32, 2]])
我想执行以下操作而不显式编写for循环,即说一个在内置循环中使用自动的方法;
1)用所有1的列替换第2列,即
x = array([[ 3, 1, 1],
[ 3, 1, 34],
[ 33, 1, 3],
[ 43, 1, 2]])
2)在原始数组中,将第3列替换为第2列和第3列的乘积,即
x = array([[ 3, 2, 1*2],
[ 3, 25, 34*25],
[ 33, 333, 3*333],
[ 43, 32, 2*32]])
3)最后,我想根据条件
替换原始数组中的第二列x[1] = 0 if x[0] > 5 else 4
即。数组现在看起来像:
x = array([[ 3, 4, 1],
[ 3, 4, 34],
[ 33, 0, 3],
[ 43, 0, 2]])
有什么建议吗? 谢谢!
答案 0 :(得分:6)
关于numpy的文档值得一读,因为这是相当基本的东西......
x[:,1]
= 1 x[:,2] *= x[:,1]
x[:,1] = np.where( x[:,0] > 5, 0, 4 )