NumPy是一个开源的Python科学计算基础库,包含:
• 一个强大的N维数组对象 ndarray
• 广播功能函数
• 整合C/C++/Fortran代码的工具
• 线性代数、傅里叶变换、随机数生成等功能
NumPy是SciPy、Pandas等数据处理或科学计算库的基础
N维数组对象:ndarray
ndarray是一个多维数组对象,由两部分构成:
• 实际的数据
• 描述这些数据的元数据(数据维度、数据类型等)
ndarray数组一般要求所有元素类型相同(同质),数组下标从开始0。其中轴(axis): 保存数据的维度;秩(rank):轴的数量
ndarray数组的创建方法
(1)从Python中的列表、元组等类型创建ndarray数组 :
即:np.array(list/tuple,dtype=np.int) dtype即元素类型,当np.array()不指定dtype时,Numpy将根据数据情况关联一个dtype类型
import numpy as np
a=np.array([1,2,3])
print(a)
[1 2 3]
(2)使用NumPy中函数创建ndarray数组,如:arange, ones, zeros 等
1.np.range(起,终,步长) 【注】终点不包含在数组中,步长默认为1
import numpy as np
b=np.arange(0,10,2)
print(b)
[0 2 4 6 8]
2.np.zeros(shape) 生成全0数组
import numpy as np
a=np.zeros((2,3))
print(a)
[[0. 0. 0.]
[0. 0. 0.]]
3.np.ones(shape) 生成全1数组
import numpy as np
a=np.ones((2,3,4))
print(a)
[[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]]
4.np.full(shape,val) 生成全val数组
import numpy as np
a=np.full((2,3),5)
print(a)
[[5 5 5]
[5 5 5]]
5.np.eye(n) n阶对角数组
import numpy as np
a=np.eye(5)
print(a)
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
6.np.ones_like(x) 生成和x矩阵同型的全1数组
import numpy as np
a=np.eye(5)
b=np.ones_like(a)
print(b)
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
7.np.zeros_like(x) 生成和x矩阵同型的全0数组
8.np.full_like(x,val) 生成和x矩阵同型的全val数组
(3)使用NumPy中其他函数创建ndarray数组
1.np.linspace(起,末,n等分) 末端默认包含在内 endpoint=True
import numpy as np
a=np.linspace(1,10,5)
print(a)
[ 1. 3.25 5.5 7.75 10. ]
2.np.concatenate((x,y),axis=) 把x,y数组拼接形成新数组
import numpy as np
axis=0
a=np.linspace(1,10,4)
b=np.linspace(1,10,4)
c=np.concatenate((a, b), axis=axis)
print(c)
[ 1. 4. 7. 10. 1. 4. 7. 10.]