Numpy 学习笔记(1)
仅供学习,如有不对欢迎指出。
1. 常用属性
-
arr.ndim 查看数组的维度
-
arr.size 查看数组中元素的个数
-
arr.shape 查看数组是几行几列的
shape 方法可以用于改变数组的形状
reshape中有个order参数 关键字分别是 F(列展开)和C(行展开)
-
arr.flatten 将数组拍平
order 参数同上
-
arr.tolist() np转list
2. 数据类型
-
f.itemsize 返回数组中每个元素的字节单位长度
-
f.dtype 返回数据类型
-
f.astype(np.int64) 改变数据类型 例如这个是将数据类型改变成 int64
-
np.round(arr, n) 取小数点n位
3. 数组的计算
-
基本原则:广播式
假设 t1 是一个数组
print(t1 + 2) 意味着 所有元素加2 其余运算符同理
-
两个数组运算要求与数学中的矩阵类似 (例外)其中相同列数((m,n) 与 (1,n))或行数((m,n)与(m,1))的数组可以运算
4. 数组的轴
- 降维操作: np.sum(a, axis = n) 其中n为维度 指定维度相加时仅对该维度的值进行相加
a = [
[1, 2, 3]
[4, 5, 6]
]
print(np.sum(a, axis = 0))
'''
[5, 7, 9]
'''
print(np.sum(a, axis = 1))
'''
[6, 15]
'''
5. 数组的索引和切片
- 冒号分隔切片 与python list 同理
t1 = np.arange(24).reshape(4, 6)
'''
[
[0 1 2 3 4 5 ]
[6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]
]
'''
#输出第1行
print(t1[1])
#输出第1行 且:代表第一行的全部
print(t1[1, :])
#输出第一行到最后一行
print(t1[1:])
#输出第1行和第3行
print(t1[[1, 3]])
#输出第一列的全部 [1 7 13 19]
print(t1[: ,1])
#输出全部行和从从第1列到最后
print(t1[: ,1:]
#取特定值
print(t1[0, 1] == t1[0][1]) #return Ture 等价
6. 数组中的数值修改
t1 = np.arange(24).reshape(4, 6)
'''
[
[0 1 2 3 4 5 ]
[6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]
]
'''
#将第1行的所有值变为0
t[1,:] = 0
#将第1列的所有值变为0
t[:,1] = 0
#将1,2行的所有值变为0
t[1:3,:] = 0
#将1,2,3列所有值变为0
t[:,1:4] = 0
#将2到4行,3到5列的所有值变为0 ⭐⭐⭐⭐⭐⭐⭐
t[1:4, 2:5] = 0
#将[0,0] 和 [1,3]两个点的值变为0 ⭐⭐⭐⭐⭐⭐⭐
t[[0,1],[0,3]] = 0
#将t中小于10的值变为0 可用于所有逻辑运算 逻辑符 & | ~
t[t<10] = 0
#三目运算 类似excel if语句 和 c# linq中的 where语句
score = np.arrayp[[80, 88],[82, 81],[75, 81]]
result = np.where(score > 80 , True, False)