龙空技术网

数据科学专业人士必须掌握NumPy的常用方法(二)

新语数据故事汇 68

前言:

此刻你们对“numpypython33”大体比较珍视,大家都想要了解一些“numpypython33”的相关文章。那么小编也在网络上搜集了一些对于“numpypython33””的相关文章,希望小伙伴们能喜欢,各位老铁们一起来学习一下吧!

NumPy(或Numeric Python)是每个数据科学和机器学习项目的核心。整个数据驱动生态系统在某种程度上都依赖于NumPy及其核心功能。这使得它成为Python中构建的最重要和具有颠覆性的库之一。

考虑到NumPy由于其无与伦比的潜力在工业和学术界具有广泛的适用性,对其方法和语法有牢固的了解对于Python程序员来说是至关重要的。

然而,试图掌握NumPy库,如果你从NumPy的官方文档开始,一开始可能会感到非常令人生畏和不知所措。从常用的方法入手快速掌握NumPy。

分成两部分,上一期《数据科学专业人士必须掌握NumPy的常用方法(一)》介绍了NumPy数组创建方法、NumPy数组操作方法 两方面,下面继续NumPy 数学运算、矩阵和向量运算、排序和搜索及统计方法的介绍。

导入库

当然,如果你想使用NumPy库,你应该先导入它。这里普遍采用的惯例是将numpy设置别名为np。我们也会偶尔使用pandas,所以让我们也导入它。为更好展现结果输出,我们引用icecream 包。

import numpy as npimport pandas as pdfrom  icecream import  ic
NumPy数组上的数学运算

NumPy提供了各种各样的逐元素数学函数,你可以应用于NumPy数组。

18.三角函数

a = np.array([1,2,3])print("Trigonometric Sine   :", np.sin(a))print("Trigonometric Cosine :", np.cos(a))print("Trigonometric Tangent:", np.tan(a))
19.舍入函数

使用np.floor()方法返回逐元素向下取整。

使用np.ceil()方法返回逐元素向上取整。

使用np.rint()方法将元素四舍五入到最接近的整数。

使用np.round_()方法将元素四舍五入到指定的小数位数:

a = np.linspace(1, 2, 5)ic(a)ic(np.floor(a))ic(np.ceil(a))ic(np.rint(a))a = np.linspace(1, 2, 7)ic(np.round_(a, 2)) # 2 decimal places
20.指数和对数

使用np.exp()方法计算逐元素的指数。

使用np.log()方法计算逐元素的自然对数。

a = np.arange(1, 6)ic(a)ic(np.exp(a).round(2))ic(np.log(a).round(2))
21.求和和乘积

使用np.sum()方法计算数组元素的和。

使用np.prod()方法计算数组元素的乘积。

a = np.array([[1, 2], [3, 4]])ic(a)ic(np.sum(a))ic(np.sum(a, axis = 0))ic( np.sum(a, axis = 1))a = np.array([[1, 2], [3, 4]])ic(a)ic(np.prod(a))ic(np.prod(a, axis = 0))ic(np.sum(a, axis = 1))
22.平方根

使用np.sqrt()方法计算数组元素的平方根:

a = np.array([[1, 2], [3, 4]])np.sqrt(a)
矩阵和向量运算23.点积

如果你想计算两个NumPy数组的点积,请使用np.dot()方法:

a = np.array([[1, 2], [3, 4]])b = np.array([[1, 1], [1, 1]])np.dot(a, b)
24.矩阵乘积

要计算两个NumPy数组的矩阵乘积,请使用np.matmul()或Python中的@运算符:

a = np.array([[1, 2], [3, 4]])b = np.array([[1, 1], [1, 1]])ic(np.matmul(a, b))ic(a@b)
25.向量范数

向量范数表示用于测量向量长度的一组函数。使用np.linalg.norm()方法来找到矩阵或向量的范数:

a = np.arange(-4, 5)ic(a)ic(np.linalg.norm(a)) ## L2 Normic(np.linalg.norm(a, 1)) ## L1 Norm
排序方法26.对NumPy数组进行排序

要就地对数组进行排序,请使用ndarray.sort()方法。

a = np.array([[1,4],[3,1]])ic(a)ic(np.sort(a)) ## sort based on rowsic(np.sort(a, axis=None)) ## sort the flattened arrayic(np.sort(a, axis=0)) ## sort based on columns
27.排序后的NumPy数组中的索引顺序

要返回将数组排序的索引顺序,请使用np.argsort()方法:

x = np.array([3, 1, 2])np.argsort(x)
搜索方法28.最大值/最小值对应的索引

要返回沿轴的最大值的索引,请使用np.argmax()方法,如下所示:

a = np.random.randint(1, 20, 10).reshape(2,5)ic(a)ic(np.argmax(a)) ## index in a flattend arrayic(np.argmax(a, axis=0)) ## indices along columnsic(np.argmax(a, axis=1)) ## indices along rows

如果你想要返回沿轴的最小值的索引,请使用np.argmin()方法:

a = np.random.randint(1, 20, 10).reshape(2,5)ic(a)ic(np.argmin(a)) ## index in a flattend arrayic(np.argmin(a, axis=0)) ## indices along columnsic(np.argmin(a, axis=1)) ## indices along rows
29.基于条件搜索

如果你想根据条件在两个数组之间进行选择,请使用np.where()方法,如下所示:

a = np.random.randint(-10, 10, 10)ic(a)ic(np.where(a < 0, 0, a))
30.非零元素的索引

要确定NumPy数组中非零元素的索引,请使用np.nonzero()方法:

a = np.array([[3, 0, 0], [0, 4, 0], [5, 6, 0]])ic(a)ic(np.nonzero(a))
统计方法

接下来,让我们看一下在NumPy数组上计算标准统计信息的方法。

31.均值

要找到NumPy数组中沿轴的值的均值,请使用np.mean()方法,如下所示:

a = np.array([[1, 2], [3, 4]])ic(a)ic(np.mean(a))ic(np.mean(a, axis = 1)) ## along the row axisic(np.mean(a, axis = 0)) ## along the column axis
32.中位数

要计算NumPy数组的中位数,请使用np.median()方法。

a = np.array([[1, 2], [3, 4]])ic(a)ic(np.median(a))ic(np.median(a, axis = 1)) ## along the row axisic(np.median(a, axis = 0)) ## along the column axis
33.标准差

要计算NumPy数组沿指定数组的标准差,请使用np.std()方法。

a = np.array([[1, 2], [3, 4]])ic(a)ic( np.std(a))ic( np.std(a, axis = 1)) ## along the row axisic( np.std(a, axis = 0)) ## along the column axis

上面简单的示例了一下NumPy 数学运算、矩阵和向量运算、排序和搜索及统计方法。

标签: #numpypython33