NumPy

浏览 585

课文

NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组。它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在原生Python中永远无法体验到的速度。 NumPy绝对是科学Python成功的关键之一,如果你想要进入Python中的数据科学和/或机器学习,你就要必须学习它。在我看来,NumPy的API设计得很好,所以我们要开始使用它并不困难。 这是一系列关于科学Python的文章中的第二篇,别忘了看看其他的哟(译者注:并不会放出所有的文章,只摘取部分文章)。 做数据分析的时候,我们少不了跟矢量和矩阵、线性代数等数学运算打交道。 在少数情况下我们可以编写简单的函数来解决,但更多时候,我们有更方便使用的库. ## 数组的操作 ### 创建一个数组 ```python import numpy as np # 创建一个一维数组 a = np.array([0, 1, 2, 3, 4]) # 创建一个二维数组 b = np.array( [ [11, 12, 13, 14, 15], [21, 22, 23, 24, 25], [31, 32, 33, 34, 35], [41, 42, 43, 44, 45], [41, 42, 43, 44, 45], ] ) print("a 的维数:", a.ndim) print("a 的元素数量:", a.size) print("a 的形状:", a.shape) print("b 的维数:", b.ndim) print("b 的元素数量:", b.size) print("b 的形状:", b.shape) ``` ```python a 的维数: 1 a 的元素数量: 5 a 的形状: (5,) b 的维数: 2 b 的元素数量: 25 b 的形状: (5, 5) ``` ```python print(np.zeros((3, 4))) # 创建一个形状 3 x 4 所有元素都为 0 的数组 print(np.ones( (2, 3), dtype=np.int16 )) # 创建一个形状 2 x 3 # 所有元素都为 1 # 类型为 int16 的数组 print(np.empty((4, 35))) # 创始数组时不进行初始化,里面的元素可能为任何值 ``` ### 数组切片 ```python # 针对一维数组切片 print(a[2:4]) # [2 3] print(a[2:]) # [2 3 4] print(a[:4]) # [0 1 2 3] print(a[:]) # [0 1 2 3 4] ``` ```python # 针对二维数组切片 print(b[:2]) # [[11 12 13 14 15] # [21 22 23 24 25]] print(b[2:4, 2:4]) # [[33 34] # [43 44]] print(b[:, 2:4]) # [[13 14] # [23 24] # [33 34] # [43 44] # [43 44]] print(b[:, 2]) # [13 23 33 43 43] ``` ### 更改数组的形状 通过 `reshape` 我们可以改变数组的形状。 ```python # 通过 reshape 调整形状 print(a.reshape(2, 3)) # [[0 1 2] # [3 4 5]] # 两种方法都能将数组转成一维数组 print(b.ravel()) # [11 12 13 14 ...... 45 41 42 43 44 45] print(b.reshape(-1)) # [11 12 13 14 ...... 45 41 42 43 44 45] ```

评论

登录参与讨论

暂无评论

共 0 条
  • 1
前往
  • 1