numpy创建数组:
numpy中的参数类型一致
#1.np.array来创建数组
a = np.array([1,2,3,4])
#2.np.arange方法,arange与range方法一致
b = np.arange(0,10) #0可以省略类似于range
#3.np.random.random方法来创建一个n行m列的数组
c = np.random.random((2,2))
#4.np.random.ranndint来创建一个n行m列的数组,其中范围可以有前面两个参数决定
d = np.random.randint(0,9, size = (4,4))
#函数生成数组
#5.zeros,全零数组
array_zeros = np.zeros((3,3))
#6..ones,全1数组
array_ones = np.ones((4,4))
#7.full
array_full = np.full((2,3),9) #两行三列的全9数组
#8.eye
array_eye = np.eye(4) #行和列相同,单位矩阵
numpy数据类型:
bool,int,float,complex类型
可以通过dtype参数在创建数组时设置数据类型
f = np.array(['a','b'],dtype='S')
>> [b'a' b'b']
|S1
通过astype方法来更改数据类型
uf = f.astype('U')
print(uf)
>>['a' 'b']
<U1
多维数组:
a1 = np.array([1,2,3])
print(a1.ndim)
a2 = np.array([[1,2,3],[4,5,6]])
print(a2.ndim)
a3 = np.array([
[
[1,2,3],
[4,5,6]
],
[
[7,8,9],
[10,11,12]
]
])
print(a3.ndim)
print(a1.shape)
print(a2.shape)
print(a3.shape)
>>
1
2
3
(3,)
(2, 3)
(2, 2, 3)
ndim查看数组维度数,shape方法查看数组形状
a4 = a3.reshape(2,6)
print(a4)
print(a4.ndim)
print(a4.shape)
>>
[[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]]
2
(2, 6)
reshape方法改变数组形状,数组中的元素个数要与原数组一致
可以用 数组.size方法来查看元素个数
花式索引:
a2 = np.random.randint(0,10,size=(4,6))
print(a2)
>>
[[6 1 5 2 5 4]
[9 0 0 1 7 7]
[3 3 7 0 0 3]
[1 5 2 2 5 1]]
#行索引
a2[0]
>> array([6, 1, 5, 2, 5, 4])
a2[1:3]
>> array([[9, 0, 0, 1, 7, 7],
[3, 3, 7, 0, 0, 3]])
a2[[0,2,3]]
>> array([[6, 1, 5, 2, 5, 4],
[3, 3, 7, 0, 0, 3],
[1, 5, 2, 2, 5, 1]])
#行列定位元素
a2[1,1]
>> 0
#多行多列
a2[[1,3],[2,4]]
>> array([0, 5])
a2[:,1] #第一列
>>array([1, 0, 3, 5])
a2[[1,3],[2,4]]:[1,3]表示行,[2,4]表示列,第一行第二列和第三行第四列
布尔索引:
a2 = np.arange(0,24).reshape(4,6)
a2
>> array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
a2 < 10
>>array([[ True, True, True, True, True, True],
[ True, True, True, True, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False]])
返回布尔值组成的数组
a2[a2<10]
>>array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
返回数组中满足条件的元素组成的数组