NumPy中的基本数据类型取值范围
名称 | 描述 |
---|---|
bool | 用一个Bit存储的布尔类型(True或False) |
inti | 由所在平台决定其大小的整数(一般为int32或int64) |
int8 | 一个字节大小,-128 至 127 |
int16 | 整数,-32768 至 32767 |
int32 | 整数,-2 ** 31 至 2 ** 31 - 1 |
int64 | 整数,-2 ** 63 至 2** 63 - 1 |
uint8 | 无符号整数,0 至 255 |
uint16 | 无符号整数,0 至 65535 |
uint32 | 无符号整数,0 至 2 ** 32 - 1 |
unit64 | 无符号整数,0 至 2 ** 64 - 1 |
float16 | 半精度浮点数:16位,正负号1位,指数5位,精度10位 |
float32 | 单精度浮点数:32位,正负号2位,指数8位,精度23位 |
float或float64 | 双精度浮点数:64位,正负号1位,指数11位,精度52位 |
complex64 | 复数,分别用两个32位浮点数表示实部和虚部 |
complex或complex128 | 复数,分别用两个64位浮点数表示实部和虚部 |
类型名称使用规则
NumPy数值类型是dtype(date-type)对象的实例,每个类型具有唯一特征。使用方式有:
1、直接使用
2、添加np包名前缀,避免冲突
在使用下面的语句导入NumPy后:
3、使用字符简称
简称前可以加 ‘|’,’<’,’>’,分别表示(底层数据通信):
|:忽视字节顺序
<:低位字节在前,小端 little endian
>:高位字节在前,大端 big endian
例:a=0x12345678
小端:
00 01 02 03
|78| |56| |34| |12|
大端:
00 01 02 03
|12| |34| |56| |78|
类型转换
ndarray基本运算(上)
ndarray的矢量化运算
矢量运算:相同大小的数组键间的运算应用在元素上。
矢量和标量运算:“广播”—将标量“广播”到各个元素。
Broadcasting(广播)规则
Broadcasting允许通用函数以有意义的方式处理具有不完全相同形状的输入。
Broadcasting的第一个规则是,如果所有输入数组不具有相同数量的长度,则“1”将被重复地添加到较小数组的形状,直到所有所有数组具有相同数量的长度。
Broadcasting的第二个规则确保沿着特定维度具有大小为1数组表现得好像他们具有沿着该维度具有最大形状的数组的大小。假定数组元素的值沿“Broadcasting”数组的该维度相同。
应用广播规则后,所有数组的大小必须匹配。
ndarray基本操作
拷贝和视图
当计算和操作数组时,他们的数据有时被复制到新的数组中,有时不复制。有三种情况:
1、完全不复制
简单赋值不会创建数组对象或其数据的拷贝
2、视图或浅拷贝
不同的数组对象可以共享相同的数据。view方法创建一个新数组对象,通过该对象可看到相同的数据。
3、深拷贝
copy方法生成数组及其数据的完整拷贝。
索引、切片和迭代
一维数组可以索引、切片和迭代,非常类似于列表和其他pyhton序列。
多维数组每个轴可以有一个索引。这些索引以逗号分隔的元组给出。
当提供比轴数更少的索引时,缺失的索引被认为是一个完整的切片。
如果想对数组中的每个元素执行一个操作,可以使用flat属性,它是一个迭代器。
形状操作
更改数组的形状
数组具有沿着每个轴的元素数量给出的形状:
可以使用各种命令更改数组的形状。以下三个命令都返回修改的数组,但不更改原始数组:
轴的交换与变换
数组的堆叠与拼接
垂直拼接:np.vatack((a,b))
水平拼接:np.hstack((a,b))
函数column_stack将1D数组作为列堆叠到2D数组中。是按列拼接: