NumPy笔记
NumPy对象
NumPy中的ndarray是个多维数组对象,该对象由两部分组成
- 实际数据
- 描述这些数据的元数据
大部分的数组操作仅仅修改元数据部分,而不改变底层的实际数据
NumPy数组一般是同质的(但有一种特殊的数组类型例外,它是异质的),即数组中的所有元素类型必须是一致的。这样有一个好处:如果我们知道数组中的元素均为同一类型,该数组所需的存储空间就很容易确定下来。
- 创建一维数组
import numpy as np
a = np.arange(5)
print(a) # a = array([0, 1, 2, 3, 4])
print(a.dtype) # a 的数据类型 int32
print(a.shape) # a 的维度 (5,)
- 创建多维数组
import numpy as np
m = np.array([np.arange(5), np.arange(5)])
print(m)
print(m.dtype)
print(m.shape) # m 的维度 (2,5)
print(m[1,2]) # 数组中的值
NumPy 数据类型
| 类型 | 描述 |
|---|---|
| bool | 用一位存储的布尔类型(值为TRUE或FALSE) |
| inti | 由所在平台决定其精度的整数(一般为int32或int64) |
| int8 | 整数,范围为128至127 |
| int16 | 整数,范围为32 768至32 767 |
| int32 | 整数,范围为231至231 1 |
| int64 | 整数,范围为263至263 1 |
| uint8 | 无符号整数,范围为0至255 |
| uint16 | 无符号整数,范围为0至65 535 |
| uint32 | 无符号整数,范围为0至2321 |
| uint64 | 无符号整数,范围为0至2641 |
| float16 | 半精度浮点数(16位):其中用1位表示正负号,5位表示指数,10位表示尾数 |
| float32 | 单精度浮点数(32位):其中用1位表示正负号,8位表示指数,23位表示尾数 |
| float64或float | 双精度浮点数(64位):其中用1位表示正负号,11位表示指数,52位表示尾数 |
| complex64 | 复数,分别用两个32位浮点数表示实部和虚部 |
| complex128或complex | 复数,分别用两个64位浮点数表示实部和虚部 |
在NumPy中,许多函数的参数中可以指定数据类型,通常这个参数是可选的
import numpy as np
a = np.arange(7, dtype='uint8')
print(a)
数据类型对象
数据类型对象是numpy.dtype类的实例。
NnmPy 字符编码
| 数据类型 | 字符编码 |
|---|---|
| 整数 | i |
| 无符号整数 | u |
| 单精度浮点数 | f |
| 双精度浮点数 | d |
| 布尔值 | b |
| 复数 | D |
| 字符串 | S |
| unicode字符串 | U |
| void (空) | V |
dtype 类的属性
一维数组的索引和切片
一维数组的切片操作与Python列表的切片操作很相似
数组的组合
NumPy数组有水平组合、垂直组合和深度组合等多种组合方式,我们将使用vstack(Y轴组合)、
dstack(Z轴组合)、hstack(X轴组合)、column_stack(x轴组合)、row_stack(y轴组合)以及concatenate函数来完成数组的组合
数组的分割
NumPy数组可以进行水平、垂直或深度分割,相关的函数有hsplit、vsplit、dsplit和split。我们可以将数组分割成相同大小的子数组,也可以指定原数组中需要分割的位置。
数组的属性
除了shape和dtype属性以外,ndarray对象还有很多其他的属性,在下面一一列出:
ndim属性,给出数组的维数,或数组轴的个数size属性,给出数组元素的总个数itemsize属性,给出数组中的元素在内存中所占的字节数nbytes属性来查看整个数组所占的存储空间。这个属性的值其实就是itemsize和size属性值的乘积T属性的效果和transpose函数一样,如下所示
numpy 常用函数
- 生成单位矩阵
np.eye() - 存储数据
savetxt() - 读取csv文件
np.loadtxt() - 加权平均值
np.average(x,weights=y)其中x为初始数据,y为加权值 - 算术平均值
np.mean() - 最大值
np.max() - 最小值
np.min() - 中位数
np.median() - 方差
np.var() - 相邻元素差值
np.deff() - 自然对数
np.log()
本文是NumPy笔记,介绍了NumPy对象由实际数据和元数据组成,数组一般同质。还阐述了NumPy数据类型、数据类型对象等知识,包括一维数组索引和切片、数组组合与分割操作,最后列举了NumPy常用函数,如生成单位矩阵、读写文件等。


被折叠的 条评论
为什么被折叠?



