NumPy
浏览 1356
课文
NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组。它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在原生Python中永远无法体验到的速度。
NumPy绝对是科学Python成功的关键之一,如果你想要进入Python中的数据科学和/或机器学习,你就要必须学习它。在我看来,NumPy的API设计得很好,所以我们要开始使用它并不困难。
这是一系列关于科学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)
a 的维数: 1
a 的元素数量: 5
a 的形状: (5,)
b 的维数: 2
b 的元素数量: 25
b 的形状: (5, 5)
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))) # 创始数组时不进行初始化,里面的元素可能为任何值
数组切片
# 针对一维数组切片
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]
# 针对二维数组切片
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
我们可以改变数组的形状。
# 通过 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]
评论
暂无评论