Numpy 最核心的就是 Numpy Array,在 python 中是没有数组类型的,而 Numpy 提供了一个数组类型,与 python 中的 List 类型非常相似。
Numpy Array 有啥用呢?
List 是列表,可通过索引查找数值,但不能对整个列表进行数值运算。Numpy Array 是数组,既可以通过索引值查找数据,也能对整个数组进行数值运算。
所以 Numpy Array 的计算速度要比 List 快很多,在需要使用 List 进行运算时,均可以使用 Numpy Array进行代替。
什么是 Numpy
举个栗子。下面是常见的关于 python 中 list 的一个写法:
1 | import numpy as np |
list 在处理对象时会进行类型的判断,如果符合则进行xxx操作,不符合进行yyy操作。List 中的元素可以是不同类型的数据,缺点是维护成本高,速度较慢慢。
而 Numpy 为了提高运算速度,减少了存放数据的种类,只能存放唯一种类的数据。
1 | lst = [[1,3,5],[2,4,6]] |
Numpy 只能存储一种数据类型,定义方法如下:
1 | np_lst=np.array(lst,dtype=np.float) |
上述代码就定义了只能存储 float 类型的 Numpy 数组。此外,还可以存储多种类型,例如:
- bool
- int
- int8/16/32/64/128
- uint8/32/64/128
- float16/32/64
- complex64/128
Numpy Array 是 Numpy 中最基础的数据结构。
Numpy 数组常用属性
shape: 行列数
ndim: 数组维数
dtype: 数组中元素的数据类型
itemsize: 每个元素的字节大小
size:数组中的元素个数
1 | lst = [[1,3,5],[2,4,6]] |
Numpy 数组常用方法
1 | # 值为0的数组 |
Numpy 数组常用操作
可将 Numpy 数组进行操作,转换为需要的格式。
1 | # 一维连续数组 |
可将 Numpy 数组进行操作,转换为需要的格式。
1 | lst = np.array([[[1, 2, 3, 4], |
多个数组操作:
1 | lst1 = np.array([10, 20, 30, 40]) |
追加(类似 list 中的加法)、拼接与拆分元素,
1 | lst1 = np.array([10, 20, 30, 40]) |
矩阵操作与线性方程组
1 | from numpy.linalg import * |
Numpy 的其他应用
1 | # fft(信号处理领域) |