简介
NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
- 一个强大的N维数组对象 ndarray
- 广播功能函数
- 整合 C/C++/Fortran 代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
安装
pip install numpy
#验证是否成功
#linux系统
python #进入python解释器(或者python3,根据服务器的配置进入 )
>>> import numpy as np
>>> np.eye(4)
#eye(4) 生成对角矩阵
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
- import numpy 可以引入库到当前环境
- import numpy as np 可以设置别名 调用的时候可以通过别名调用
- from numpy as * 可以从库中将函数引入文件 可以直接使用引入的函数 不需要在函数前面添加库名,
*
引入该库的所有函数可以替换成想引入的函数,用逗号分隔
Numpy 数组
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
参数说明:
名称 | 描述 |
---|---|
object | 数组或嵌套的数列 |
dtype | 数组元素的数据类型,可选 |
copy | 对象是否需要复制,可选 |
order | 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认) |
subok | 默认返回一个与基类类型一致的数组 |
ndmin | 指定生成数组的最小维度 |
Numpy 数据类型
名称 | 描述 |
---|---|
bool_ | 布尔型数据类型(True 或者 False) |
int_ | 默认的整数类型(类似于 C 语言中的 long,int32 或 int64) |
intc | 与 C 的 int 类型一样,一般是 int32 或 int 64 |
intp | 用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64) |
int8 | 字节(-128 to 127) |
int16 | 整数(-32768 to 32767) |
int32 | 整数(-2147483648 to 2147483647) |
int64 | 整数(-9223372036854775808 to 9223372036854775807) |
uint8 | 无符号整数(0 to 255) |
uint16 | 无符号整数(0 to 65535) |
uint32 | 无符号整数(0 to 4294967295) |
uint64 | 无符号整数(0 to 18446744073709551615) |
float_ float64 | 类型的简写 |
float16 | 半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位 |
float32 | 单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位 |
float64 | 双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位 |
complex_ complex128 | 类型的简写,即 128 位复数 |
complex64 | 复数,表示双 32 位浮点数(实数部分和虚数部分) |
complex128 | 复数,表示双 64 位浮点数(实数部分和虚数部分) |
Numpy 数组属性
ndarray.shape 表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)。比如,一个二维数组,其维度表示"行数"和"列数"。
import numpy as np
a = np.array([1,2,3,4,5,6,7,8,9,10,11,12])
print(a.shape)
a.shape = (2,6)
print(a)
a.shape = (3,4)
print(a)
#输出结果
(12,)
[[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]]
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
Numpy 创建数组
numpy.empty(shape, dtype = float, order = 'C')
参数 | 描述 |
---|---|
shape | 数组形状 |
dtype | 数据类型,可选 |
order | 有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。 |
- 生成的数组为随机值
- numpy.zeros 以0填充数组
- numpy.ones 以1填充数组
numpy.asarray(a, dtype = None, order = None)
a 可以填参数 (可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组),其他参数同上
数组操作
- reshape 不改变数据的情况下修改形状
- flat 数组元素迭代器
- flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原数组
- ravel 返回展开数组
reshape函数可以在不改变数据的条件下修改形状
numpy.reshape(arr,newshape,order='C')
- arr 要修改形状的数组
- newshape 整数或者整数数组,新的形状应当兼容原有形状
- order
C
--按行F
--案列A
--原顺序K
– 元素在内存中出现的顺序
numpy.ravel(a, order='C')
展平数组,修改会影响原数组,接收两个参数:
- a 操作的数组
- order 排序
a.ravel(order=‘C’)等同于上面
numpy.split(ary, indices_or_sections, axis)
numpy.split 函数沿特定的轴将数组分割为子数组
- ary 被分割的数组
- indices_or_sections 如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)
- axis 沿着哪个维度切开,默认为0,横向切分。为1时,纵向切分