首页
学习
活动
专区
工具
TVP
发布

每个数据科学家都应该知道的20个NumPy操作

NumPy构成了数据科学领域中大部分Python库的基础。

关于数据科学的一切都始于数据,数据以各种形式出现。数字、图像、文本、x射线、声音和视频记录只是数据源的一些例子。无论数据采用何种格式,都需要将其转换为一组待分析的数字。因此,有效地存储和修改数字数组在数据科学中至关重要。

NumPy (Numerical Python)是一个科学计算包,它提供了许多创建和操作数字数组的方法。它构成了许多与数据科学相关的广泛使用的Python库的基础,比如panda和Matplotlib。

在这篇文章中,我将介绍20种常用的对NumPy数组的操作。这些操作可分为4个主要类别:

创建数组

操作数组

数组合并

带数组的线性代数

首先就是需要引入numpy的包

import numpy as np

创建数组

1.特定范围内的随机整数

第一个参数决定了范围的上限。下界默认为0,但我们也可以指定它。size参数用于指定所需的大小。

我们创建了一个由2到10之间的整数组成的3x2数组。

2. 0到1之间的随机浮点数

浮点数在0和1之间的一维数组。可以用于创建随机噪声数据。

3. 一个标准正态分布的样本

randn()用于从一个标准正态分布(即零均值和单位方差)创建一个样本。

我们创建了一个有100个浮点数的数组。

4. 1和0的矩阵

一个矩阵可以被认为是一个二维数组。我们可以用 np.zeros和np.ones构造一个0或1的矩阵

我们只需要确定矩阵的维数,就可以进行矩阵的创建。

5. 单位矩阵

单位矩阵是一个对角线为1,其他位置为0的方阵(nxn)。可以用Np.eye 或 np.identity来创建。

6. Arange

Arange函数用于在指定的时间间隔内创建具有均匀间隔顺序值的数组。我们可以指定起始值、停止值和步长。

默认的起始值是零,默认的步长是1。

7. 只有一个值的数组

我们可以使用np.full创建在每个位置具有相同值的数组。

我们需要指定要填充的大小和数字。此外,可以使用dtype参数更改数据类型。默认数据类型为整数。

操作数组

让我们首先创建一个二维数组:

8. 扁平化

Ravel函数使数组扁平化(即转换为一维数组)。

默认情况下,数组是通过逐行添加来扁平化的。通过将order参数设置为F (类fortran),可以将其更改为列。

9. 重塑

使用reshape函数,它会对数组进行重塑。A的形状是(3,4)大小是12。

可以指定每个维度上的大小,只要保证与原大小相同即可

我们不需要指定每个维度的大小。我们可以让NumPy通过-1来求维数。

10. 转置

矩阵的转置就是变换行和列。

11. Vsplit

将数组垂直分割为多个子数组。

我们将一个4x3的数组分成两个形状为2x3的子数组。

我们可以在分割后访问特定的子数组。

我们将一个6x3的数组分成3个子数组,得到第一个数组。

12. Hsplit

它与vsplit类似,但是水平工作的。

如果我们在一个6x3数组上应用hsplit得到3个子数组,得到的数组的形状将是(6,1)。

数组合并

在某些情况下,我们可能需要组合数组。NumPy提供了以多种不同方式组合数组的函数和方法。

13. 连接

这与pandas的合并的功能很相似。

我们可以使用重塑函数将这些数组转换为列向量,然后进行垂直连接。

14. Vstack

它用于垂直堆叠数组(行在彼此之上)。

它也适用于高维数组。

15. Hstack

类似于vstack,但是是水平工作的(按列排列)。

使用NumPy数组的线性代数(NumPy .linalg)

线性代数是数据科学领域的基础。NumPy作为使用最广泛的科学计算库,提供了大量的线性代数运算。

16. Det

返回一个矩阵的行列式。

矩阵必须是方阵(即行数等于列数)才能计算行列式。对于高维数组,最后两个维度必须是正方形。

17. Inv

计算矩阵的逆。

矩阵的逆矩阵是与原矩阵相乘得到单位矩阵的矩阵。不是每个矩阵都有逆矩阵。如果矩阵A有一个逆矩阵,则称为可逆或非奇异。

18. Eig

计算一个方阵的特征值和右特征向量。

19. 点积

计算两个向量的点积,这是关于它们的位置的元素的乘积的和。第一个向量的第一个元素乘以第二个向量的第一个元素,以此类推。

20. 矩阵相乘

Matmul 矩阵乘法。

我们已经讨论了NumPy的基本操作。在NumPy上有更高级的操作,但最好先理解基础操作。

感谢您的阅读。

作者 Soner Yıldırım

deephub翻译组

DeepHub

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200901A03F7M00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券