NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。
NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
- 一个强大的N维数组对象 ndarray
- 广播功能函数
- 整合 C/C++/Fortran 代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
1、生成高维数组
a = np.array([1, 2, 3])
print(a)
#多于1个维度
b = np.array([[1, 2], [3, 4]])
print(b)
[1 2 3]
[[1 2]
[3 4]]
2、生成指定维度的数组
#生成指定维度的数组
c = np.array([1, 2, 3, 4])
print(c)
c = np.array([1, 2, 3, 4],ndmin = 2)
print(c)
[1 2 3 4]
[[1 2 3 4]]
注意第二个的数组有两个方括号
3、指定数据类型
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
1
(24,)
3
(2, 4, 3)
[1. 2. 3. 4.]
d = np.array([1, 2, 3, 4],dtype = complex)
print(d)
[1.+0.j 2.+0.j 3.+0.j 4.+0.j]
4、Numpy的数组属性
ndarray.ndim返回数组的维数
ndarray.shape返回数组的维度
import numpy as np
a = np.arange(24)
print(a)
print(a.ndim)#返回数字的维数
print(a.shape)#返回数组的维度
b = a.reshape(2, 4, 3)#此时拥有3个维度
print(b.ndim)
print(b.shape)
打印输出
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
1
(24,)
3
(2, 4, 3)
假如该数组是一个二维矩阵的话,那么它的ndim就是2,shape便是行数和列数,由以上的打印输出,我们可以发现它们都是以元组的形式给出的。
5、数组元素的大小
#数组元素的大小
x = np.array([1, 2, 3, 4, 5], dtype = np.int16)
print(x.itemsize)
int16是16个bit,那便是2个字节。
输出结果是:2