(一)简介

数据分析我们常用的工具Numpy,pandas,Matplotlib库,其中Numpy库是pandas库的基础,它们主要是用来处理一维及二维的表格数据,而Matplotlib库这是数据可视化的利器。

(二)Numpy基础

引入方法:import numpy as np

(1)Numpy的定义:

官方解释:NumPy系统是Python的一种开源的数值计算扩展,这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。

简单来说:Numpy中含有矩阵matrix和数组array是NumPy里的两种数据类型,都可以用于处理行列表示的数字元素

python数组和Numpy数组区别:

(1)主要区别:numpy数组(array or matrix)创建时是固定大小,python数组(list)是动态的。更改ndarray的大小将创建一个新数组并删除原来的数组。(就是array 和list 的区别)

(2)元素类型区别:

NumPy数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。

  python的List可以存放不同类型的元素。

  例外情况:Python的原生数组里包含了NumPy的对象的时候,这种情况下就允许不同大小元素的数组。

(2)array 和matrix的区别

1.matrix只能是2维的,array可以是任意维数。

2.在这两个数据类型上执行相同的数学运算会得到不同的结果

对于a,b两个matrices,a*b表示矩阵乘积

numpy 数据分析实战 numpy在数据分析中有什么用_numpy 数据分析实战

矩阵乘法:

1、当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。

2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。

3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和

对于array来说,a*b表示逐个元素相乘

 

numpy 数据分析实战 numpy在数据分析中有什么用_numpy 数据分析实战_02

**运算符表示的含义也不同,对于maxtrix来说,a**2表示a*a

numpy 数据分析实战 numpy在数据分析中有什么用_数组_03

对于array来说,a**2表示数组里的数的平方

numpy 数据分析实战 numpy在数据分析中有什么用_深度学习_04

(二)Numpy和python数组

(1)打印结果不相同

numpy 数据分析实战 numpy在数据分析中有什么用_深度学习_05

numpy 数据分析实战 numpy在数据分析中有什么用_numpy 数据分析实战_06

(2)索引相似点

 

 

numpy 数据分析实战 numpy在数据分析中有什么用_机器学习_07

 

numpy 数据分析实战 numpy在数据分析中有什么用_机器学习_08

 

切片是左闭右开。

(3)进行数学计算不同

Numpy作为一个数据处理的库能非常好的支持一些数学运算

 

numpy 数据分析实战 numpy在数据分析中有什么用_numpy 数据分析实战_09

 

numpy 数据分析实战 numpy在数据分析中有什么用_numpy 数据分析实战_10

(4)数据存储不同

列表储存的是一维的数据,而数组则可以存储多维的数据:

 

numpy 数据分析实战 numpy在数据分析中有什么用_numpy 数据分析实战_11

 

 

numpy 数据分析实战 numpy在数据分析中有什么用_pytorch_12

(三)Numpy建立数组的方式

(1)np.array(列表)

f=np.array([[1,2],[3.4],[5,6]])

输出:

numpy 数据分析实战 numpy在数据分析中有什么用_pytorch_13

 

(2)np.arrange(起点,终点,步长):

 

numpy 数据分析实战 numpy在数据分析中有什么用_数组_14

注意左闭右开

numpy 数据分析实战 numpy在数据分析中有什么用_机器学习_15

 

 

(3).reshape来改变np.arrange(行,列) 的形状

a=np.arrange(12).reshape(3,4)

输出:

numpy 数据分析实战 numpy在数据分析中有什么用_深度学习_16

 

(4)np.random模块来创建随机一维数组

1.np.random.randn(n)来创建一个服从正太分布 (均值为0,方差为1的分布)的n个随机数一维数组,代码如下:

a=np.random.randn(3)

打印:

numpy 数据分析实战 numpy在数据分析中有什么用_numpy 数据分析实战_17

2.通过np.random.randint(起始数,终止数(行,列)),我们可以随机生成从起始数到终止数的n行n列数组