python 数据分析

IPython

变量名? 函数名?获取相关帮助

 

%run [文件名].py 执行py文件

 

数据的维度:一组数据的组织形式

列表和数组:

一组数据的有序结构

区别:

列表:数据类型可以不同

数组:数据类型相同

一维数据:列表(有序)、集合(无序)

二(多)维数据:多维列表

高维数据:字典类型、数据表示格式JSON、XML

 

NumPy科学计算基础库

N维数组对象ndarray

广播功能函数

整合C/C++/Fortran代码的工具

线性代数、傅里叶变换、随机数生成等功能

 

import numpy as np

为什么需要数组类型?

数组对象可以去掉元素间运算所需循环,使一维向量更像单个数据。

设置专门的数组对象,经过优化,可以提升这类应用的运算速度。

数组对象采用相同的数据类型,有助于节省运算和存储空间。

 

ndarray是一个多维数组对象,由两部分构成:

1.实际的数据

2.描述这些数据的元数据(数据维度、数据类型)

ndarray要求数据元素类型相同,数组下标从0开始

 

np.array()#生成一个ndarray数组

轴(axis):保存数据的维度

秩(rank):轴的数量

属性:

.ndim #秩(轴的数量)
.shape #ndarray对象的尺度,n行m列
.size #ndarray对象元素个数 n*m
.dtype #ndarray元素类型
.itemsize #ndarray中每个元素的大小
ndarry 元素类型
bool  intc intp int8 int16 int32 int64
uint8 uint16 uint32 uint64
float16 float32 float64
complex64(实部虚部都是float32) complex128

python语法仅支持整数、浮点数、复数3种类型

科学计算涉及数据较多,对存储和性能都有较高要求

对元素类型精细定义,有助于NumPy合理使用存储空间并优化性能

对元素进行精确定义,有助于程序员对程序规模有合理评估

ndarray也可以由非同质对象构成,默认元素为对象类型

 

ndarray数组创建方法:

 

从Python中的列表、元组等类型创建ndarray数组

X = np.array(list/tuple)

X = np.array(list/tuple,dtype =np.float32)指定数据类型

 

使用NumPy中函数创建ndarray数组,如:arange,ones,zeros

np.arange(n) 元素从 0到 n-1 整数类型

np.ones(shape) 根据shape生成一个全一数组 shape是元组类型

np.full(shape,val) 每个元素都是val

np.eye(n) n*n单位矩阵

np.ones_like(a) 生成跟a形状相同的全一数组

np.zeros_like(a)

np.full_like(a,val)

np.linspace(a,b,n) 根据起止数据a,b等距地生成n个数据,形成数组

np.linspace(1,10,4)  1,4,7,10

endpoint 代表结尾数据是否作为最后一个元素出现

np.concatenate() 将两个或多个数组合并成一个新的数组

 

从字节流(raw bytes)中创建ndarray数组

从文件中读取特定格式,创建ndarray数组

 

维度变化:

.reshape(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变

.resize(shape) 与reshape一致,修改原数组

.swapaxes(ax1,ax2)将数组n个维度中的两个维度进行调换

.flatten() 对数组进行降维,多维变为一维,原数组不变

 

ndarray数组类型变换:

new_a =a.astype(new_type) 一定会创建新数组

ndarray数组转为list

a.tolist()

 

操作:

索引:获取数组中特定位置元素

切片:获取数组中元素子集

一维数组:

索引:同列表

切片:a[起始编号:终止编号(不含):步长]

多维数组:

索引:a[x,y,z,...]

切片:a[:,1:3,:]

运算:

数组与标量进行运算

a.mean()获得平均值

np.abs(x) np.fabs(x)

np.sqrt(x)

np.square(x) 平方

np.log(x) np.log10(x) np.log2(x)

np.ceil(x) np.floor(x)

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)

二元函数:

+ - * / ** 两个数组各元素进行对应运算

np.maximum(x,y) np.fmax()

np.minimum(x,y)  np.fmin() 元素级最大值,最小值计算

np.mod(x,y) 元素级模运算

np.copysign(x,y)将数组y中各元素值的符号赋值给数组x对应元素

>< >= <= == != 算术比较,产生布尔数组

 

posted @ 2019-11-12 19:26  liulex  阅读(154)  评论(0编辑  收藏  举报