在numpy中,有一个方法array(),指的是用来建立一个数组。numpy数组类是ndarray。
其中,Numpy数组的赋值是比较方便的,但是也有一些需要注意的地方。
一般赋值:
1.下面的赋值方式和C++和Java语言类似
import numpy as np
a = np.zeros((2,5))
a[1][2] = 1
a[0][4] = 10
print(a)
其输出结果:
[[ 0. 0. 0. 0. 10.]
[ 0. 0. 1. 0. 0.]]
2.下面的赋值方式实现的功能和上面一样,但是方式是C++和Java所没有的:
import numpy as np
a = np.zeros((2,5))
a[1,2] = 1
a[0,4] = 10
print(a)
需要注意的赋值方式:
这个赋值中,里面可以有列表(用list类型就行),也可以用元组类型。
(一)
import numpy as np
a = np.zeros((4,10))
a[[0,1,3],2] = 1
print(a)
指的是在第0行,第1行和第三行中的第2列(下标从0开始)赋值为1
输出结果:
[[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]]
(二)
import numpy as np
a = np.zeros((4,10))
a[1,[2,3,4,5,6,7,8]] = 100
print(a)
指的是在第1行的第2到8列数赋值为100
输出结果:
[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 100. 100. 100. 100. 100. 100. 100. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
(三)
也可以用列表的切片:
import numpy as np
a = np.zeros((4,10))
a[1:3,2:8] = 20
print(a)
注意,别加方括号 ↑。
输出结果:
[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 20. 20. 20. 20. 20. 20. 0. 0.]
[ 0. 0. 20. 20. 20. 20. 20. 20. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]