维度: 一组数据的组织形式
一维数据: 对应列表,数组和集合等概念(线性方式组织)
列表: 数据类型可以不同
数组: 数据类型相同
二维数据: 由多个一维数据构成,是一维数据的组合形式。
多维数据: 例如时间维度
高维数据仅利用最基本的二元关系展示数据间的复杂结构
一维数据: 列表和集合类型
二维数据: 列表类型
多维数据: 列表类型
高维数据: 字典类型或数据表示格式
(JSON, XML和YAML格式)
NumPy的数组对象: ndarray,N维数组对象
广播功能函数
整合C/C++/Fortran代码工具
线性代数,傅里叶变换,随机数生成等功能
ndarray - 向量化运算
import numpy as np
观察: 科学计算中,一个维度所有数据的类型往往相同。
- 数组对象采用相同的数据类型,有助于节省运算和存储空间。
ndarray是一个多维数组对象,由两部分构成:
- 实际的数据
- 描述这些数据的元数据(数据维度,数据类型等)
- 所有元素类型相同,数组下标从0开始
非同质ndarray对象无法有效发挥NumPy优势,尽量避免使用。
ndarray数组的创建方法
- 从Python中的列表,元组等类型创建ndarray数组
- 使用NumPy中函数创建ndarray数组,如:arange, ones, zeros等
- 从字节流中创建ndarray数组
- 从文件中读取特定格式,创建ndarray数组
(1)从Python中的列表,元组等类型创建ndarray数组
x = np.array(list/tuple)
x = np.array(list/tuple, dtype=np.float32)
当np.array()不指定dtype时,Numpy将根据数据情况关联一个dtype类型
np.arange(n)
np.arange(10)
np.ones(shape)
np.ones((3,6))
np.ones((3,6), dtype=np.int32)
np.ones((2,3,4), dtype=np.int32)
np.zeros(shape)
np.full(shape, val)
np.eye(n)
np.eye(5)
np.one_like(a)
np.zero_like(a)
np.full_like(a, val)
np.linspace()
np.linspace(1, 10 ,4)
np.linspace(1, 10 ,4, endpoint=False)
np.concatenate()
对于创建后的ndarray数组,可以对其进行维度变化和元素类型变换
a = np.ones(2, 3, 4), dtype = np.int32)
.reshape(shape)
.resize(shape) #改变原数组
.swapaxes(ax1, ax2)
.flatten()
a = np.ones((2, 3, 4), dtype=np.int32)
a = reshape((3, 8))
a.flatten() #降维
a.astype(new_type) #创建新数组
ls = a.tolist()
网友评论