1、维度 一维数据:有对等关系的有序或无序数据构成,采用线性方式组织 列表,数组,集合等概念 python表示 :列表和集合 二维数据:多个一维数据构成,一维数据组合形式 表格是典型的二维数据 python表示:列表 多维数据:一维或二维在新维度上扩展形成 python表示;列表 高维数据: python表示:字典或数据表示的格式 列表和数组区别:一组数据有序结构 列表中,元素数据类型可以不同 数组中,元素数据类型相同 2、Numpy:一个开源的科学计算基础库,是Scipy,Pandas的数据处理或科学计算库的基础 一个强大的N维数组对象 ndarray ` 广播功能函数 整合c/c++/fortran代码的工具 线性代数、傅里叶变换、随机数生成等功能 3、使用方法: import numpy as np(from numpy import *) 4、N维数组对象:ndarray 两部分组成: &实际数据 &描述这些数据的元数据(数据维度,数据类型等) ndarry数据一般要求所有元素类型相同(同质),数组下标从0开始 非同质ndarray元素为对象类型 非同质ndarray无法发挥Numpy的优势,尽量避免使用 特性: 轴(axis):保存数据的维度 秩(rank)轴的数量 .ndim 秩,轴或维度数量 .shape ndarray对象的尺度,对于矩阵,n行,m列 .size ndarray对象元素的个数,相当于.shape中m*n的值 .dtype ndarrayd对象元素类型 .itemsize ndarray对象中每个元素大小,以字节为单位 支持类型: bool True or False uint8 [0~255] intc 与c语言的int类型一致 uint16 [0~65535] intp 用于索引的整数与c语言中的sszie_t一致,int32或64 uint32 [0~2^31-1] int8 [-128~127] uint64 [0~2^63-1] int16 [-32768~32767] float16:1位符号位,5位指数位,10尾数 int32 [-2^31~2^31-1] float32:1位符号位,8位指数位,23位尾数 int64 [-2^63~2^31-1] float64:1位符号位,11位指数位,52位尾数 complex64 复数,实部和虚部都是32位浮点数 complex128 实部和虚部都是64位的浮点数 ndarray元素类型对比python仅仅支持的整形,浮点型和复数三种类型: 对科学计算涉及数据较多,对存储和性能都有较高的要求 对类型的精确定义,有助于Numpy合理的使用存储空间并优化性能 对元素类型精细的定义,有助于程序员对程序规模有合理的评估 5、ndarray的创建方法: (1)从Python中的列表、元组等类型创建ndarray数组 >>>x = np.arrray(list/tuple) >>>x = np.array(list/tuple,dtype = np.float32) 当np.array()不指定类型时,Numpy将根据数据情况关联一个dtype类型 (2)使用Numpy中函数创建ndarrray数组,如 arange,ones,zeros等。 >>>np.arrange(n) 功能类似range(),返回ndarray类型,元素0-(n-1) >>>np.ones(shape) 生成一个全1数组,shape是元组类型ones=(1,1) >>>np.zeros(shape) 生成一个全零数组 >>>np.full(shape,val) 生成一个数组,每个元素值都是val >>>np.eye(n) 创建一个n*n的单位对角矩阵,对角线为1,其余全为0 >>>np.ones_like(a) 根据数组a的形状n*m生成一个全1数组 >>>np.zeros_like(a) 根据数组a的形状生成一个全零数组 >>>np.full_like(a,val) 根据数组a的形状生成一个数组,每个元素都是val >>>np.linspace(1,10,4,endpoint=False) 根据起止数据1,10等间隔的填充数据4个,形成数组endpoint=false代表不将 10包含 >>>np.concatenate() 将两个或则多个数组合并成一个数组 (3)从字节流(raw bytes)中创建ndarray (4)从文件中读取特定格式,创建ndarray数组 6、数组维度的变换: .reshape(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变 .resize(shape) 与.reshape()功能一致,但是修改原数组 .swapaxes(ax1,ax2)将数组n个维度中的两个进行调换 .flatten() 对数组进行降维,返回折叠后的以为数组,原数组不变 7、ndarray数组类型变换 .astype(dtype) new_a=a.astype(new_type) 原数组a的数据类型转换为new_type,并且保存在新创建的new_a数组中 8、ndarray数组向列表转换: ls = a.tolist() &.ndarray的操作 数组的索引和切片 索引:获取数组中特定位置元素的过程 切片:获取数组元素子集的过程 |
|
来自: LARGESTATION > 《科学数据分析》