python数据分析之numpy学习一

  • 一 数据维度

一维数据:由对等关系的有序或无序数据构成,采用线性方式组织。对应列表,数组和集合等概念。在python中可以用列表或元组来表示

区分列表和数组:1列表中数据类型可以不同,2数组中数据类型相同。

 二维数据 :由多个一维数据构成,是一维数据的组合形式。python用列表的嵌套

多维数据:由一维或二维数据在新维度上的扩展形式。python用列表的嵌套

高维数据:字典,键值对。Python中用字典的嵌套或数据表示格式(JSON,XML,YAML)。

  • 二 Numpy的数组对象ndarray

1 Numpy包含一个强大的N维数组对象ndarray,是Scipy,pandas等数据处理或科学计算的基础

2 Numpy的引用:import numpy as np

3 ndarray是一个多维数组对象,由两部分组成(1)实际的数据(2)描述这些数据的元数据(数据维度等)

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

5 ndarray别名为array,np.array()接受一个列表生成ndarray数组,且ndarray对象的属性如表

属性 说明
.ndim 维度的数量
.shape 对象的尺度,n行m列
.size 元素个数,相当于n*m
.dtype nadrray的元素属性
.itemsize 对象中每个元素的大小,以字节为单位

数据类型 说明
bool 布尔类型,True/false
intc 与c语言中int类型一致,一般是int32或int64
intp  
int8 8位长度的整数
int16  
int32  
int64  
uint8 8位无符号整数
uint16  
uint32  
uint64  
float16 16位半精度浮点数,1位符号位,5位指数,10位尾数

float32

1 8 32
float64 1 11 52
complex64 复数类型,实数和虚数都为浮点数
complex128  
  • 三 ndarray数组的创建

1 从python中的列表,元组等类型创建ndarray数组(也可以元组列表混用,但要求数据个数同样)

x=np.ndarray(list/tuple)  x=np.ndarray(list/tuple,dtype=np.float32) 可以传入dtype参数来规定数据类型,若不规定dtype,则根据输入的数据自行规定数据类型

2 使用NumPy中的函数

函数 说明
np.arrange(n) 类似range函数,返回ndarray类型,元素从0-n-1,是整数,其余的函数生成默认为浮点数
np.ones(shape) 根据shape生成一个全1数组,shape是元组类型
np.zeros(shape) 根据shape生成一个全0数组,shape是元组类型
np.full(shape,val) 根据shape生成一个数组,每个元素都是val
np.eye(n) 生成一个正方的n*n单位矩阵,对角线为1,其余为0
np.ones_like(a) 根据数组a的形状生成一个全1数组
np.zeros_like(a) 根据数组a的形状生成一个全0数组
np.full_like(a,val)  

  

3 使用NumPy中其他函数创建ndarray数组

函数 说明
np.linspace() 根据起始数据等间距填充数据,形成数组。
np.concatenate() 将2个或多个数组合并为一个数组。

  • 四 ndarray数组的变换

对于创建好的ndarray数组,可以对其进行维度变换和数据元素类型变换。

1 维度变换

方法 说明
.reshape(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变
.resize(shape) 与.reshape(shape)的功能一致,但修改原数组
.swapaxes(ax1,ax2) 将数组n个维度中两个维度进行调换
.flatten() 对数组进行降维,返回折叠后的一维数组,原数组不变

2 ndarray数组的类型转换

new_a=a.astype(new_type)

astype()方法可以作为一个拷贝数组的方法,当数据类型相同时,因为他一定会创建一个新的数组

3 ndarray数组向列表的转换

ls=a.tolist()

  • 五 ndarray数组的操作和运算

1 索引和切片(索引:获取数组中特定元素的过程。切片:获取数组元素子集的过程。)

一维数组的索引和切片

多维数组的索引和切片

2 数组与标量(一个数值)之间的运算:数组与标量之间的运算作用于数组的每一个元素

3 NumPy一元函数与二元函数(不必记忆,需要时查找即可)

一元函数

函数 说明
np.abs(x) 计算数组各元素的绝对值
np.sqrt(x) 计算数组各元素的平方根
np.square(x) 计算平方
np.log(x)   np.log10(x)   np.log2(x) 计算数组各元素的自然对数,10底对数和2底对数
np.ceil(x)  np.floor(x) 计算各数组元素的ceiling值和floor值
np.rint(x) 计算各数组的四舍五入值
np.modf(x) 计算各元素小数和整数部分以两个独立数组返回

np..cos(x)  np.cosh(x)

np.sin(x)  np.sinh(x)

np.tan(x)  np.tanh(x)

三角函数
np.exp(x) 计算各素组元素的指数值
np.sign(x) 计算数组各元素符号值1(+)-1(-)0(0)

二元函数

函数 说明
+ - * / 各元素对应运算

np.maximun(x,y)

np.minimum(x,y)

最值
np.mod(x,y) 元素级的模运算
np.copysign(x,y) 将数组y中各元素的符号赋值给数组x对应元素
> < >= <=  == != 算数比较,产生布尔型数组

猜你喜欢

转载自blog.csdn.net/qq_40123329/article/details/81263518