numpy学习笔记[1]
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]])