章节内容
什么是NumPy模块和NumPy数组
创建数组
基本数据类型
数据可视化
索引和切片
副本和视图
目录
NumPy数组
| python对象 |
|
| NumPy提供: |
|

计算效率大幅度提高

每个循环 178 μs ± 3.98 μs(7 次运行,每次 10,000 次循环)。
NumPy 参考文档


利用arange手动构建数组

利用linspace创建数组

用特殊的方法创建特殊数组




| 复数类型: | d = np.array([1+2j, 3+4j, 5+6*1j])
d.dtypedtype('complex128') |
|---|---|
| 布尔数据类型: | e = np.array([True, False, False, True])
e.dtypedtype('bool') |
| 字符串类型: | f = np.array(['Bonjour', 'Hello', 'Hallo'])
f.dtype # <--- strings containing max. 7 letters dtype('S7') |
| 更多: |
|
导入包
import matplotlib.pyplot as plt
数据的输入
- x = np.linspace(0,3,20)
- y = np.linspace(0,8,20)
plt.plot(x,y)

- image = np.random.rand(30,30)
- plt.imshow(image,plt.cm.hot)

创建一个数组之后,因为numpy几乎继承了python中的list容器中所有特性,其切片和list容器的切片操作类似,这里就不展开了,直接用图来展示。

我们创建一个切片之后,得到的numpy数组和原来的数组是共享同一块内存空间,所以修改任意一个numpy数组中的数据,另外的一个numpy数组也会被修改。
- a = np.arange(10)
- >>> aarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
-
- >>> b = a[::2]
-
- >>> b
-
- array([0, 2, 4, 6, 8])
-
- >>> np.may_share_memory(a, b)
-
- True
- a = np.arange(10)
- >>> c = a[::2].copy()
- c[0] = 0
- >>> np.may_share_memory(a, c)
- False