数据处理之Numpy(以数组为例)
工具使用
Anaconda
Numpy简介
Numpy 的英文全称为 Numerical Python,指Python 面向数值计算的第三方库。Numpy 的特点在于,针对 Python 内建的数组类型做了扩充,支持更高维度的数组和矩阵运算,以及更丰富的数学函数。Numpy 是 Scipy.org 中最重要的库之一,它同时也被 Pandas,Matplotlib 等我们熟知的第三方库作为核心计算库。
NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。
Numpy包括了:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。Numpy和稀疏矩阵运算包scipy配合使用更加方便。
下面使用Numpy库进行对数组的一些操作
数组的创建(创建全0数组,全1数组,随机数数组)
首先我们导入numpy库命名为np以便我们后续调用
import numpy as np
创建全0数组
np.zeros((2,4))
创建全1数组
np.ones((2,4))
生成随机数组
np.random.randint(0,10,(3,2))
== 数组的属性(查看数组的维度,数组元素的个数)==
生成一个随机数组,并查看这个随机数组的维度
a=np.random.randint(0,10,(2,4))
a.shape
数组元素的个数
a.size
数组的维度操作(将数组的行变列,返回最后一个元素,返回第1到第2个元素,返回逆序的数组)
定义一个数组并将行变为列
a = np.array([[1,2,3],[4,5,6]])
a.transpose()
返回最后一个元素
a[-1]
返回第一到第二个元素
a[1:2]
返回逆序数组
a[::-1]
数组的合并(数组的水平合并,垂直合并,深度合并)
定义两个数组并将其水平合并
a = np.arange(9).reshape(3,3)
b = np.arange(9,18).reshape(3,3)
np.hstack((a,b))
垂直合并
np.vstack((a,b))
深度合并
np.dstack((a,b))
数组的拆分(数组的水平拆分,垂直拆分)
定义一个数组进行水平拆分
a = np.arange(9).reshape(3,3)
np.hsplit(a, 3)
垂直拆分
np.vsplit(a, 3)
数组运算(与常的四则运算,与数组的四则运算,判断数组是否相等)
定义两个数组与常数进行运算
a = np.arange(4, dtype=np.float32).reshape(2,2)
b = np.arange(4, 8, dtype=np.float32).reshape(2,2)
a+2
这两个数组之间进行运算
a/b
判断这两个数组是否相等
(a == b).all()
数组的常用函数(数组所有元素的和、积、平均值、最大值、最小值、方差、标准差)
定义一个数组并计算所有元素的和
a = np.array([3,2,4])
a.sum()
计算所有元素的积
a.prod()
计算所有元素的平均数
a.mean()
最大值
a.max()
最小值
a.min()
方差
a.var()
标准差
a.std()