小白学Python:Numpy(二)

目录

  • 引言
  • 数组的基本数学运算
  • 数组变换
  • 总结

引言

NumPy库是Python中用于科学计算的核心库。它提供了一个高性能多维数组对象,以及使用和处理这些数组的工具。

Numpy是每一位学习python的小伙伴的必修课,因为它真的真的太实用了。

举几个例子:

  1. 我们在线性代数中学习的向量就是一维数组,矩阵就是二维数组,而Numpy就是专业来处理数组的,因此我们可以使用Numpy进行向量和矩阵的运算。

  2. 图片本质上都可以用数组来表示,黑白图就是一个矩阵(矩阵元素值就是像素值),而彩色图则是三维数组,因为其包含了RGB三个颜色通道,每一个颜色通道是一个矩阵,因此由3个矩阵组合成三维数组,所以咱们可以用Numpy对图片进行大刀阔斧地修改

总之,任何可以用数组来表示的事物,都可以使用Numpy来进行花式操作。

本文旨在向读者介绍Numpy的基础知识,包括使用Numpy:

  • 创建数组
  • 获取数组的信息(如形状、维数等)
  • 获取数组内指定位置的元素
  • 数组的基本数学运算
  • 数组变换

本文将会对介绍的每一个Numpy函数进行代码演示,从而能够帮助读者快速掌握该函数的使用。

本文介绍数组的基本数学运算和数组变换。

数组的基本数学运算

数组的基本数学运算包括:逐元素(element-wise)运算(即对数组的各元素做相同的运算)、数组元素聚合运算、数组之间的加减乘除、数组之间的比较、数组元素排序 ···

我们依然先构造一个数组:

array = np.random.randint(0,10,(2,2,2))
print (array)
>>>
[[[4 1]
  [9 4]]

 [[5 7]
  [9 4]]]
  • 逐元素(element-wise)运算
    np.exp()
#对数组的每一个元素求exp
np.exp(array)
>>>
array([[[5.45981500e+01, 2.71828183e+00],
        [8.10308393e+03, 5.45981500e+01]],

       [[1.48413159e+02, 1.09663316e+03],
        [8.10308393e+03, 5.45981500e+01]]])

np.sin()

#对数组的每一个元素求sin 
np.sin(array)
>>>
array([[[-0.7568025 ,  0.84147098],
        [ 0.41211849, -0.7568025 ]],

       [[-0.95892427,  0.6569866 ],
        [ 0.41211849, -0.7568025 ]]])

np.sqrt()

#对数组的每一个元素开根号
np.sqrt(array)
>>>
array([[[2., 1.],
        [3., 2.]],

       [[2.23606798, 2.64575131],
        [3., 2.]]])

np.log()

#对数组的每一个元素求log
np.log(array)
>>>
array([[[1.38629436, 0.        ],
        [2.19722458, 1.38629436]],

       [[1.60943791, 1.94591015],
        [2.19722458, 1.38629436]]])

除了上述函数,Numpy还提供了很多数学运算的函数,大家可以在日后的学习过程中逐渐积累。

  • 数组元素聚合
    所谓数组元素聚合,也就是求数组元素的统计量,如最大值、最小值、平均数、中位数、总和、方差等等。

依然使用之前创建的array举例:

print (array)
>>>
[[[4 1]
  [9 4]]

 [[5 7]
  [9 4]]]

np.sum() 求和

#对所有元素求和
np.sum(array)
>>>43

#或者,更为简便地
array.sum()
>>>43

下述函数同理:
np.max() 最大值
np.min() 最小值
np.mean() 平均值
np.median中位数
np.std() 标准差
np.var() 方差
······
需要注意地是,上述函数如果没有指定axis的取值,默认就是对数组的所有元素求统计量,倘若需要对指定维度(axis,如某行或某列)上的元素求统计量,则需要对axis进行设定。

为了让本文更适于初学者,本文不对axis的设定方法做展开。但是由于axis在python数据分析中几乎无处不在,所以我特地写了一篇十分通俗易懂的小短文《小白学Python:通俗理解axis》来帮助读者更好地理解和活用axis。

  • 数组间的加减乘除

我们首先创建两个形状相同的数组:

a=np.arange(6).reshape((2,3))
b=np.arange(6).reshape((2,3))
print (a)
>>>
[[0 1 2]
 [3 4 5]]
print (b)
>>

你可能感兴趣的:(小白学Python,python,numpy,数据分析)