文章目录
概括:Numpy+Scipy+pandas+matplotlib
Numpy简介
以矩阵为基础的数学计算模块,纯数学存储和处理大型矩阵。 这个是很基础的扩展,其余的扩展都是以此为基础。
一.Numpy历史
- 1995年Jim HugUNin开发了Numeric
- 随后Numarray包诞生
- Travis Oliphants整合Numeric和Numarray,开发NumPy,2006年第一个版本诞生
- 使用Anaconda发行版的Python,已经安装好NumPy模块,不用再安装NumPy模块
- 依照标准的NumPy标准,习惯使用import numpy as np的方式导入该模块
二.Numpy模块
- NumPy:Numerical Python,即数值Python包,是Python进行科学计算的一个基础包,所以是一个掌握其他Scipy库中模块的基础模块,一定需要先掌握该包的主要使用方式。
- 官网:http://www.numpy.org/
- 官方文档:https://docs.scipy.org/doc/numpy/user/index.html
- NumPy模块是Python的一种开源的数值计算扩展,是一个用python实现的科学计算包,主要包括:
一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组,称为ndarray(N-dimensional array object) - 用于对整组数据进行快速运算的标准数学函数:ufunc(universal function object)
- 实用的线性代数、傅里叶变换和随机数生成函数。
- NumPy和稀疏矩阵的运算包Scipy配合使用更加方便。
三. NumPy核心数据结构:ndarray
- NumPy的数组类被称作ndarray。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。
- 一种由相同类型的元素组成的多维数组,元素数量是实现给定好的
- 元素的数据类型由dtype(data-type)对象来指定,每个ndarray只有一种dtype类型
- ndarray的大小固定,创建好数组后数组大小是不会再发生改变
四.ndarray创建(*)
可以通过numpy模块中的常用的几个函数进行创建ndarray多维数组对象
import numpy as np
help(np.array)#查看array方法
-
1.jupyter中执行
-
2.pycharm中执行
1.array函数
接收一个普通的python序列,并将其转换为ndarray
2. zeros函数
创建指定长度或者形状的全零数组
代码:
np.zeros((3,3))
np.zeros((9,9))
结果:
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
array([[0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0.]])
3. ones函数
创建指定长度或者形状的全1数组
代码:
np.ones((6,6)
结果:
array([[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.]])
4.empty函数
创建一个没有任何具体值的数组(准备地说是创建一些未初始化的ndarray多维数组)
代码:
np.empty((3,3))
结果:
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
5.其他创建方式(函数)
1.range函数
- 类似python的range函数,通过指定开始值、终值和步长来创建一个一维数组,注意:最终创建的数组不包含终值
2.linspace函数
- 通过指定开始值、终值和元素个数来创建一个一维数组,数组的数据元素符合等差数列,可以通过endpoint关键字指定是否包含终值,默认包含终值
3.logspace函数
- inspace函数类似,不过创建的是等比数列数组
4.使用随机数填充数组
-
即使用numpy.random中的random()函数来创建0-1之间的随机元素,数组包含的元素数量由参数决定
-
random.random
代码:
np.random.random((3,3))
结果:
array([[0.99784209, 0.61915242, 0.07684086],
[0.97593449, 0.53836222, 0.62750636],
[0.4283442 , 0.24951201, 0.73712743]])
- random.randint
代码:
np.random.randint(1,9,size = (3,3))
结果:
array([[8, 7, 4],
[1, 5, 8],
[4, 3, 7]])
- random.randn
代码:
np.random.randn(3,3)
结果:
array([[-1.09872548, 0.95041229, 1.11752962],
[ 0.34756919, 1.19748623, -0.63601329],
[ 1.58791373, -0.59266421, -0.88357908]])
- random.rand
代码:
np.random.rand(9)
结果:
array([0.35041124, 0.95888718, 0.47212198, 0.69007302, 0.22252012,
0.28099737, 0.26128754, 0.81092823, 0.84795548])