NumPy(Numerical Python)是高性能科学计算和数据分析的基础包。
按照标准约定,我们在使用NumPy时,最好遵循如下格式:
1 | import numpy as np |
ndarray
ndarray是一个n维数组对象,其中的所有元素必须是相同类型的值。
ndarray常见属性:
- shape:表示各个维度大小的元组
- dtype:表示数组数据类型的对象
通过NumPy中的array()函数,即可将一切序列型的对象转换为NumPy中的数组。
示例:
1 | import numpy as np |
算术运算
NumPy中的ndarray支持逐元素的算术运算+
、-
、*
、/
、%
和//
等。
1 | import numpy as np |
输出:
1 | data1和data2逐元素相加: |
将NumPy中的ndarray转换为Python中的list
使用ndarray的tolist()函数,可以将NumPy数组转换为Python中的list
1 | import numpy as np |
输出:
1 | <class 'numpy.ndarray'> |
数组复制
使用ndarray的copy()方法,可以创建数组副本。
1 | import numpy as np |
输出:
1 | False |
zeros, ones
除了可以使用array()函数创建数组外,还可以使用zeros、ones来创建数组。
接受参数:
- 表示维度大小的元组shape
- 表示数据类型的dtype
返回:一个指定维度且元素值全为0或1的数组
示例:
1 | import numpy as np |
输出结果:
1 | [0. 0. 0.] |
可以看到,如果我们只传入一个数字n,则会创建一个1xn的数组。
shape
shape()函数用于测量NumPy中数组、矩阵等的维度,返回一个表示维度的元组。
示例:
1 | import numpy as np |
输出:
1 | (1, 2) |
full
函数原型:
1 | full(shape, fill_value, dtype=None, order='C') |
- shape:数组的维度
- fill_value:填充的值
- dtype:指定的数据类型
示例:
1 | import numpy as np |
输出:
1 | [[1. 1.] |
广播
broadcast_to
函数原型:
1 | broadcast_to(array, shape, subok=False) |
- array:待广播的数组
- shape:期望的维度(用元组表示)
示例:
1 | import numpy as np |
输出:
1 | [[1 2 3 4] |
tile
函数原型:
1 | tile(A, reps) |
沿着每个轴,将数组中的元素重复指定次数。
https://docs.scipy.org/doc/numpy/reference/generated/numpy.tile.html
示例:
1 | import numpy as np |
输出:
1 | [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4] |
eye
eye()函数用于创建一个指定大小的单位数组(类似于线性代数中的单位矩阵)。
接受参数:一个表示维度大小的整数
示例:
1 | import numpy as np |
输出:
1 | array([[1., 0., 0.], |
arange
arange()函数类似于python中的range(),但它返回的是一个NumPy数组。
1 | import numpy as np |
输出:
1 | array([0, 1, 2, 3, 4]) |
mat
mat()函数用于创建矩阵。
random
seed
设置随机数生成器种子。保证每次运行,生成的随机数相同。
randint
函数原型:
1 | numpy.random.randint(low, high=None, size=None, dtype='l') |
返回一个或者多个随机整数,范围从低(包括)到高(不包括),即[low, high)。如果没有写参数high的值,则返回[0,low)的值。
shuffle
打乱ndarray中数据的顺序。
保存/加载NumPy对象
要想保存NumPy对象,可以使用numpy.save()方法
1 | import numpy as np |
加载保存在本地的NumPy对象,可以使用numpy.load()方法
1 | import numpy as np |