NumPy的数组对象ndarray

2017-11-06  本文已影响0人  夏天才爱睡觉

NumPy

NumPy是一个开源的Python科学计算基础库,包含:

NumPy是SciPy、Pandas等数据处理或科学计算库的基础

N维数组对象:ndarray

Python已有列表类型,为什么需要一个数组对象(类型)?
ndarray是一个多维数组对象,由两部分构成:

ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始

实例:

In [1]: import numpy as np

In [2]: a=np.array([[0,1,2,3,4],
   ...:             [9,8,7,6,5]])

In [3]: a
Out[3]: 
array([[0, 1, 2, 3, 4],
       [9, 8, 7, 6, 5]])

In [4]: print(a)
[[0 1 2 3 4]
 [9 8 7 6 5]]

备注:IPython换行用Shift + Enter运行

轴(axis): 保存数据的维度;秩(rank):轴的数量

ndarray对象的属性

属性 说明
.ndim 秩,即轴的数量或维度的数量
.shape ndarray对象的尺度,对于矩阵,n行m列
.size ndarray对象元素的个数,相当于.shape中n*m的值
.dtype ndarray对象的元素类型
.itemsize ndarray对象中每个元素的大小,以字节为单位

实例:

In [5]: a=np.array([[0,1,2,3,4],
   ...:             [9,8,7,6,5]])

In [6]: a.ndim
Out[6]: 2

In [7]: a.shape
Out[7]: (2, 5)

In [8]: a.size
Out[8]: 10

In [9]: a.dtype
Out[9]: dtype('int32')

In [10]: a.itemsize
Out[10]: 4

ndarray的元素类型

数据 类型说明
bool 布尔类型,True或False
intc 与C语言中的int类型一致,一般是int32或int64
intp 用于索引的整数,与C语言中ssize_t一致,int32或int64
int8 字节长度的整数,取值:[‐128, 127]
int16 16位长度的整数,取值:[‐32768, 32767]
int32 32位长度的整数,取值:[‐231, 231‐1]
int64 64位长度的整数,取值:[‐263, 263‐1]
uint8 8位无符号整数,取值:[0, 255]
uint16 16位无符号整数,取值:[0, 65535]
uint32 32位无符号整数,取值:[0, 232‐1]
uint64 32位无符号整数,取值:[0, 264‐1]
float16 16位半精度浮点数:1位符号位,5位指数,10位尾数 (符号)尾数*10指数
float32 32位半精度浮点数:1位符号位,8位指数,23位尾数
float64 64位半精度浮点数:1位符号位,11位指数,52位尾数
complex64 复数类型,实部和虚部都是32位浮点数
complex128 复数类型,实部和虚部都是64位浮点数 实部(.real) + j虚部(.imag)
ndarray为什么要支持这么多种元素类型?

对比:Python语法仅支持整数`、浮点数和复数3种类型

上一篇下一篇

猜你喜欢

热点阅读