如何修改NumPy数组的特定行或列?
例如,我有一个NumPy数组,如下所示:
P = array([[1, 2, 3],
[4, 5, 6]])
如何将第一行[1, 2, 3]
的元素更改为[7, 8, 9]
,以便P
成为:
P = array([[7, 8, 9],
[4, 5, 6]])
同样,如何将第二列值[2, 5]
更改为[7, 8]
?
P = array([[1, 7, 3],
[4, 8, 6]])
答案 0 :(得分:27)
可以使用Python中的方括号索引表示法选择或修改NumPy数组的行和列。
要在2D数组中选择行,请使用P[i]
。例如,P[0]
将返回P
的第一行。
要选择列,请使用P[:, i]
。 :
本质上意味着“选择所有行”。例如,P[:, 1]
将从P
的第二列中选择所有行。
如果要更改数组的行或列的值,可以将其分配给具有相同长度值的新列表(或数组)。
要更改第一个行中的值,请写:
>>> P[0] = [7, 8, 9]
>>> P
array([[7, 8, 9],
[4, 5, 6]])
要更改第二个列中的值,请写:
>>> P[:, 1] = [7, 8]
>>> P
array([[1, 7, 3],
[4, 8, 6]])
答案 1 :(得分:1)
以类似的方式,如果您只想选择两个最后一列,例如您可以使用的所有行:
print P[:,1:3]
答案 2 :(得分:0)
如果一列中有很多元素:
import numpy as np
np_mat = np.array([[1, 2, 2],
[3, 4, 5],
[5, 6, 5]])
np_mat[:,2] = np_mat[:,2] * 3
print(np_mat)
它在第三列中乘以3:
[[ 1 2 6]
[ 3 4 15]
[ 5 6 15]]