numpy数据结构

基本数据

数据类型 描述
bool 用一个字节存储的布尔类型(True或False)
inti 由所在平台决定其大小的整数(一般为int32或int64)
int8 一个字节大小,-128 至 127
int16 整数,-32768 至 32767
int32 整数,-2 ** 31 至 2 ** 32 -1
int64 整数,-2 ** 63 至 2 ** 63 - 1
uint8 无符号整数,0 至 255
uint16 无符号整数,0 至 65535
uint32 无符号整数,0 至 2 ** 32 - 1
uint64 无符号整数,0 至 2 ** 64 - 1
float16 半精度浮点数:16位,正负号1位,指数5位,精度10位
float32 单精度浮点数:32位,正负号1位,指数8位,精度23位
float64或float 双精度浮点数:64位,正负号1位,指数11位,精度52位
complex64 复数,分别用两个32位浮点数表示实部和虚部
complex128或complex 复数,分别用两个64位浮点数表示实部和虚部

array

‘array’表示元素数据大小固定的同质(相同数据类型)多维度数据。

>>> from numpy import *
>>> g = array([[1,2],[3,4],[5,6],[7,8]], dtype=int64)

# ndim: 数组的维度数
>>> g.ndim
2

# shape: 数组在行/列各维度上的大小
>>> g.shape
(4, 2)

# size: 数组包含的元素个数
>>> g.size
8

# dtype: 数组中元素的数据类型
>>> g.dtype
dtype('int64')

# itemsize: 数组中元素的数据大小(字节)
>>> g.itemsize
8

# data:数组中数据的buffer
>>> bytes(g.data)
'\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00'

# min(): 按照输入的轴(维度)对数据进行排序,输出最小的维度
>>> g3
array([[3, 5],
       [1, 6],
       [7, 1],
       [9, 0]])
# min(0): 将每列数据在列方向上进行排序后输出最小的一行(第0维)
>>> g3.min(0)
array([1, 0])
# min(1): 将每行数据在行方向上进行排序后输出最小的一列(第1维)
>>> g3.min(1)
array([3, 1, 1, 0])

numpy函数

tile

功能:将数组的“秩”在(行,列)方向上进行堆叠扩展

>>> from numpy import *
>>> g = array([[1,2],[3,4],[5,6],[7,8]])
>>> g
array([[1, 2],
       [3, 4],
       [5, 6],
       [7, 8]])

# 行和列保持和原来一样
>>> tile(g,(1,1))
array([[1, 2],
       [3, 4],
       [5, 6],
       [7, 8]])

# 行保持一样,列方向堆叠为原来2倍
>>> tile(g,(1,2))
array([[1, 2, 1, 2],
       [3, 4, 3, 4],
       [5, 6, 5, 6],
       [7, 8, 7, 8]])

# 行和列方向都堆叠为原来2倍
>>> tile(g,(2,2))
array([[1, 2, 1, 2],
       [3, 4, 3, 4],
       [5, 6, 5, 6],
       [7, 8, 7, 8],
       [1, 2, 1, 2],
       [3, 4, 3, 4],
       [5, 6, 5, 6],
       [7, 8, 7, 8]])