我们为什么要学习 Numpy库?
我们在学习Python的过程中,总会发现经常要使用Numpy模块,比如机器学习Tensorflow中,会使用Numpy模块进行数据处理,
事实上,numpy 的数据组织结构,尤其是数组(numpy.ndarray),几乎已经成为所有数据处理与可视化模块的标准数据结构了(这一点,类似于在机器学习领域 python 几乎已经成为首选工具语言)。越来越多的基于 python 的科学和数学软件包使用 numpy 数组,虽然这些工具通常都支持 python 的原生数组作为参数,但它们在处理之前会还是会将输入的数组转换为 numpy 的数组,而且也通常输出为 numpy 数组。在 python 的圈子里,numpy 的重要性和普遍性日趋增强。换句话说,为了高效地使用当今科学/数学基于 python 的工具(大部分的科学计算工具),你只知道如何使用 python 的原生数组类型是不够的,还需要知道如何使用 numpy 数组。
Numpy库常用函数的介绍
一、创建数组
numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)
numpy.empty(shape, dtype=float, order='C')
numpy.zeros(shape, dtype=float, order='C')
numpy.ones(shape, dtype=float, order='C')
numpy.eye(N, M=None, k=0, dtype=float, order='C')
>>> import numpy as np
>>>> np.array([1, 2, 3])
array([1, 2, 3])
>>> np.empty((2, 3))
array([[2.12199579e-314, 6.36598737e-314, 1.06099790e-313],
[1.48539705e-313, 1.90979621e-313, 2.33419537e-313]])
>>> np.zeros(2)
array([0., 0.])
>>> np.ones(2)
array([1., 1.])
>>> np.eye(3)
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
二、随机数
numpy.random.random(size=None)
#产生随机数,形状结构为size,
np.random.randn(d0,d1,d2……dn)
#产生标准正态分布是以0为均数、以1为标准差的正态分布,记为N(0,1)的随机数,d0,d1...dn为随机数的
维数
np.random.rand(d0,d1,d2……dn)
#产生0,1均匀分布的随机数,d0,d1...dn为随机数的为随机数的维数
numpy.random.randint(low, high=None, size=None, dtype=’l’)
#产生随机整数,最小的为low,最大的为high,size为shape 形状结构
import numpy as np
print(np.random.random([2,3])) #shape为[2,3]的随机数
print(np.random.randn(3,4)) #shape为 3,4的(0,1)正太分布随机数
print(np.random.rand(2,4)) #shape为 2,4的 均匀分布随机数
print(np.random.randint(2,5,[3,3])) # low=2,high=5 shape=[3,3]
结果如下:
三、改变数组的结构
numpy 数组的存储顺序和数组的维度是不相干的,因此改变数组的维度是非常便捷的操作,除 resize() 外,这一类操作不会改变所操作的数组本身的存储顺序。
>>> a = np.array([[1,2,3],[4,5,6]])
>>> a.shape # 查看数组维度
(2, 3)
>>> a.reshape(3,2) # 返回3行2列的数组
array([[1, 2],
[3, 4],
[5, 6]])
>>> a.ravel() # 返回一维数组
array([1, 2, 3, 4, 5, 6])
>>> a.transpose() # 行变列(类似于矩阵转置)
array([[1, 4],
[2, 5],
[3, 6]])
>>> a.resize((3,2)) # 类似于reshape,但会改变所操作的数组
>>> a
array([[1, 2],
[3, 4],
[5, 6]])
参考博客:
https://blog.youkuaiyun.com/xufive/article/details/87396460
https://blog.youkuaiyun.com/zenghaitao0128/article/details/78556535