目录
前言
学无止境,在学习Numpy的理论及使用方法时,有以下文章及github开源代码为我提供了很大帮助,特此附上链接,表示感谢!希望对您也有参考借鉴的意义!个人笔记部分仅供参考,主要针对个人学习阶段,起查缺补漏之作用。
学习资源
1.CS231n课程笔记翻译:Python Numpy教程
2. Numpy中文官网
3. numpy之初探排序和集合运算
个人笔记
1. 创建数组
import numpy as np
# 1. Create a constant array dtype('float64')
a = np.full((2,2), 7)
print (a) # Prints "[[ 7. 7.]
# [ 7. 7.]]"
# 2. Create a 2x2 identity matrix dtype('float64')
b = np.eye(2)
print (b) # Prints "[[ 1. 0.]
# [ 0. 1.]]"
2. 数组填充
3. 数组运算
1) 取模(又叫求余)
np.mod
异号MOD(取模或求余)运算法则
注:异号两整数取模运算–不能整除时,结果为除数(正值)x(整商+1)-被除数,符号与除数一致。
2)dot()、outer()、multiply()、matmul()
numpy中dot()、outer()、multiply()以及matmul()的区别
3)对数组元素取整/四舍五入
4)集合运算
intersect1d(x,y)返回集合A和B的交集,并排序
union1d(x,y)返回集合A和B的并集,并排序
setdiff1d(x,y)集合的差,包含于A但不包含于B,相当于A-(A∩B)
4. 改变数组形状
1)np.squeeze() 从数组中删除单维度条目
2)np.newaxis() 对数组增加单维度条目
new_array = old_array[: , np.newaxis] 和new_array = old_array [np.newaxis,:],是在np.newaxis这里增加1维。
np.newaxis作用
5. 矩阵/数组拼接
注:c_–列连接;r_–行连接
6. .npy保存/读取
import numpy as np
a = np.array([1,2,3,4,5,6])
np.save('xxx.npy', a)
b = np.load('xxx.npy')
7. 数组转化 (帮助进行网络通信中数组的传输)
(1)数组与bytes的转化:array.tostring(),np.fromstring(array)
注意:tostring后,原数组的维度尺寸、数组类型等信息会丢失,需及时记录。
import numpy as np
a = np.array([[1,2],[3,4],[5,6]], dtype=np.float64) # float64 -- 占8个字节
b = a.tostring()
c = np.fromstring(b, dtype=np.float64)
d = c.reshape((3,2))
if a == d:
print('Your operation is right !')
8. 数组阈值化
a = np.array([1, 2, 3, 4, 5, 6])
b = a.clip(3, 5) # min_value--3, max_value--5
print(b) # [3 3 3 4 5 5]
9. 数组倒置(即上下行交换)
a = np.array([[1,2],[3,4],[5,6]], dtype=np.float64)
b = a[::-1]
print(b) # [[5. 6.] [3. 4.] [1. 2.]]