NumPy是Numerical Python的简称,是目前python高性能科学计算和数据分析中最为重要的基础包。
- ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
- 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
- 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
- 线性代数、随机数生成以及傅里叶变换功能。
- 用于集成C、C++、Fortran等语言编写的代码的工具。
一般导入numpy包,简写成np:
import numpy as np
np常用函数
1、生成函数
(1)np.array( x):将输入数据转化为一个ndarray
np.array( x, dtype):将输入数据转化为一个类型为type的ndarray
np.asarray( array ):将输入数据转化为一个新的(copy)ndarray
data1 = [6, 7, 8, 9, 10]
arr1 = np.array(data1)
arr1
arr1.dtype
arr2 = np.asarray(arr1)
arr2
# 输出
array([ 6, 7, 8, 9, 10])
dtype('int32')
array([ 6, 7, 8, 9, 10])
(2)np.ones( N ):生成一个N长度的一维全一ndarray
np.ones( N, dtype):生成一个N长度类型是dtype的一维全一ndarray
np.ones_like( ndarray ):生成一个形状与参数相同的全一ndarray
import numpy as np
arr3 = np.ones(3)
arr3
arr4 = np.ones(3,'float32')
arr4
arr5 = np.ones_like(arr3)
arr5
# 输出
array([1., 1., 1.])
array([1., 1., 1.], dtype=float32)
array([1., 1., 1.])
(3) np.zeros( N ):生成一个N长度的一维全零 ndarray
np.zeros( N, dtype):生成一个N长度类型是dtype的一维全零ndarray
np.zeros_like( ndarray ):生成一个形状与参数相同的全零ndarray
import numpy as np
arr6 = np.zeros(3)
arr6
arr7 = np.zeros(3,'float32')
arr7
arr8 = np.zeros_like(arr3)
arr8
# 输出
array([0., 0., 0.])
array([0., 0., 0.], dtype=float32)
array([0., 0., 0.])
(4) np.empty( N ):生成一个N长度的未初始化一维ndarray
np.empty( N, dtype):生成一个N长度类型是dtype的未初始化一维ndarray
np.empty(ndarray):类似np.ones_like( ndarray )
import numpy as np
arr9 = np.empty(3)
arr9
arr10 = np.empty(3,'float32')
arr10
arr11 = np.empty_like(arr3)
arr11
# 输出
array([1., 1., 1.])
array([1., 1., 1.], dtype=float32)
array([1., 1., 1.])
(5)np.eye( N )或np.identity( N ):创建一个N * N的单位矩阵(对角线为1,其余为0)
import numpy as np
arr12 = np.eye(3)
arr12
arr13 = np.identity(3)
arr13
# 输出
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
(6)np.arange( num):生成一个从0到num-1步数为1的一维ndarray
np.arange( begin, end):生成一个从begin到end-1步数为1的一维ndarray
np.arange( begin, end, step):生成一个从begin到end-step的步数为step的一维ndarray
import numpy as np
arr14 = np.arange(3)
arr14
arr15 = np.arange(3,10)
arr15
arr16 = np.arange(3,10,0.5)
arr16
# 输出
array([0, 1, 2])
array([3, 4, 5, 6, 7, 8, 9])
array([3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5, 7. , 7.5, 8. , 8.5, 9. , 9.5])
(7)np.full( N,val ):生成一个N长度的一维值为val的 ndarray
np.full( N, val,dtype):生成一个N长度,值为val,类型是dtype的一维ndarray
np.full_like( ndarray, val ):生成一个形状相同,但参数为val的ndarray
import numpy as np
arr17 = np.full(3,6)
arr17
arr18 = np.full(3,7,'float32')
arr18
arr19 = np.full_like(arr3,4)
arr19
# 输出
array([6, 6, 6])
array([7., 7., 7.], dtype=float32)
array([4., 4., 4.])
2、矩阵函数
np.diag( ndarray):以一维数组的形式返回方阵的对角线(或非对角线)元素
np..diag( [x,y,...]):将一维数组转化为方阵(非对角线元素为0)
np.dot(ndarray, ndarray):矩阵乘法
np.trace( ndarray):计算对角线元素的和
import numpy as np
arr1 = np.ones((3,6))
arr2 = np.empty((6,2))
np.diag(arr1)
np.diag([3,3,4])
np.dot(arr1,arr2)
np.trace(arr1)
# 输出
array([1., 1., 1.])
array([[3, 0, 0],
[0, 3, 0],
[0, 0, 4]])
array([[1.33171873e-311, 6.65859366e-312],
[1.33171873e-311, 6.65859366e-312],
[1.33171873e-311, 6.65859366e-312]])
3.0
3、排序函数
np.sort( ndarray):排序,返回副本
np.unique(ndarray):返回ndarray中的元素,排除重复元素之后,并进行排序
np.intersect1d( ndarray1, ndarray2):返回二者的交集并排序
np.union1d( ndarray1, ndarray2):返回二者的并集并排序
np.setdiff1d( ndarray1, ndarray2):返回二者的差
np.setxor1d( ndarray1, ndarray2):返回二者的对称差
import numpy as np
arr1 = np.arange(3,10)