本文将对python的Numpy库中部分常用的知识进行总结整理。
Why we choose Numpy:
Python list 的特点
- 数据类型不限 --> 灵活性强 || 效率降低
array.array 的特点
- 单一类型数据 ,弥补了原生list的不足
- 没有把数据当作向量或矩阵,不支持基本运算
- 不支持 float -> int 的隐性转换
numpy.array 的特点
- 单一数据类型
- 多种操作指令
- 丰富的矩阵运算
numpy 的使用:
1. create:
直接创建:
import numpy as np
nparr = np.array( [ i for i in range(10) ] )
创建特殊矩阵:
1. 零矩阵 zeros
np.zeros( shape = (3, 5), dtype = int )
2. 全1矩阵 ones
np.ones(10)
3. 全部为指定数字 full
np.full(shape = (3, 5), fill_value = 666)
4. arrange
- in python:
[i for i in range(0, 1, 0.2)]
- 第一个数字:左区间(闭)
- 第二个数字:右区间(开)
- 第三个数字:步长
- 特点:步长为整数
- in numpy:
np.arrage(0, 1, 0.2)
- 特点 :步长可为浮点数
5. linspace
np.linspace(0, 20, 10)
- 第三位数字表示在所给区间中平均分为x个数
- 左右区间都是 闭区间
6. random
- 调用 :
np.random.xxx
- randint
(0, 10)
- [0, 10) 之间的随机数
- size = (矩阵的大小)
- seed
- 决定随机数的种子
- 测试算法的时候可以使用固定的种子
- random
- [0, 1)之间的随机数
- 可以给出size定义所需要的矩阵
- normal
- 符合正态分布的随机数
np.random.normal(a, b, size)
- a -> 期望
- b -> 方差
2. operations 操作:
1. numpy.array 的基本属性
ndim
- 矩阵的维度
shape
- 矩阵的尺寸大小
size
- 矩阵的元素个数
dtype
- 显示array中的元素的数据类型
2. numpy.array 的数据访问
- 下标索引
x[0]
x[a, b]
-> row a+1, column b+1- -1 实现倒序访问:
x[-1]
-> 最后一个元素- 切片:
- 前一个数字默认从头开始
x[:5]
-> [0, 5)个元素
8. 后一个数字默认最后一位数
-
x[0:]
-> all
3. subarray 子阵列
- 切片产生的子阵列是与原来的矩阵 共用存储空间的变量 ,一旦两者其一的数据改变,会导致另一方数据的变化
.copy()
产生副本可以避免问题
4. reshape
.r