Python数据分析与展示

视频学习地址为 http://www.icourse163.org/course/BIT-1001870002 是北京理工大学嵩老师的课。本文主要是笔记。

开发环境:Anaconda 

Anaconda集成了许多数据分析的第三方库 比如numpy,pandas,还有可视化绘图的matplotlib

下面开始介绍numpy:

在Python中列表[]可以存储不同类型的元素,但是有时会给我们计算带来麻烦,因此numpy设计了一种数组类型ndarray

在python中如果我们要计算 两二列表 a,b a*3 +b*2的值 代码如下

a = [1,2,3]

b = [3,2,1]

c=[]

for i in range(len(a)):

    c.append(a[i]*3 +b[i]*2)

然而我们用numpy的话

import numpy as np

a = np.array([1,2,3])

b = np.array([3,2,1])

c = a*3 +b*2

即可 numpy把它定义的ndarray当成一组向量来计算

ndarray有如下属性:

ndim :维度

shape:行列数

size:有多少个元素 即行数*列数

dtype:元素的类型

itemsize:每个元素的大小(字节)如图

ndarray数组的创建和变换:

1.从python的列表,元祖等类型创建ndarray数组

x = np.array(list/tuple,dtype=np.float32) 可以用dtype来指定数据类型,缺省时numpy根据数据情况关联一个dtype类型

2,从numpy的函数创建ndarray数组

np.arange(n) 放回一个ndarray数组 元素从0到n-1 和arange类似

np.ones(shape)生成一个全是1的数组,shape为元祖类型

np.zeros(shape)生成一个全是0的数组,shape是元祖类型

np.full(shape,val)根据shape生成一个数组,元素全为val

np.eyes(n)生成一个n介单位矩阵

np.zeros_like(a)根据a的shape生成一个全为0的数组

np.ones_like(a)根据a的shape生成一个全为1的数组

np.full_like(a,val) 根据a的shape生成一个全为val的数组

3.根据numpy的其他函数生成ndarray数组

np.linspace(start,end,n) 提供起始值,结束值,和间距数生成ndarray数组

np.concatenate((a,b))将2个或多个数组合并形成一个新的数组 concatenate有串联的意思

图:

ndarray数组的维度变换

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

.resize(shape) 功能与reshape相同,但是会改变原数组

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

.flatten()对数组进行降维,放回折叠后的一维数组,原数组不变

ndarray数组的类型转换

new_a = a.astype(new_type)

ndarray数组转化为列表

a.tolist()

下面开始ndarray数组操作的介绍

一维数组的索引和切片,与python中的列表操作类似

多维数组的索引和切片

ndarray数组的运算

首先我们要明确的是数组与标量之间的运算 作用于数组的每一个元素

a = np.arange(24).reshape(2,3,4)

a.mean() a的算术平均值

a/a.mean()

np.abs(x) np.fabs(x)  求绝对值

np.sqrt(x) 求平方差

np.square(x)求数组各元素的平方

np.log(x)  np.log10(x) np.log2(x) 以自然对数,10, 2 为底的对数

np.ceil(x) np.floor(x)  向上取整和向下取整

np.rint() 进行四舍五入

np.modf() 将数组各元素的小数部分和整数部分以2个独立的数组返回

np.cos(x) np.sin(x) np.cosh(x) np.sinh(x) np.tan(x) np.tanh(x) 三角函数(普通型和双曲型)

np.exp(x) 计算数组的指数值

np.sign(x) 计算数组的符号值 1(+) 0 -1(-)

二元运算

+ - * / **

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

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

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

np.copysign(x,y) 将y中各元素符号赋给x

 > < >= == <=比较二个数组产生bool数组

溜了

猜你喜欢

转载自blog.csdn.net/qq_37663299/article/details/81207513