概要
图像
(Image)由称为 像素
(Pixel)的较小成分组成。 视频
(Video)由多个 帧
(Frame)组成,每个帧都不过是一幅图像。
目标
我们将获得一些使用各种 NumPy 函数的实际经验,这些函数用于创建 NumPy 数组并获取它们的形状。我们将使用 NumPy 的 0、1 和 rand 函数来创建数组。我们还将查看它们的数据类型和形状。
内容
来看看创建 NumPy 数组的四种方法:
- 全 0 填充数组:
np.zeros
- 全 1 填充数组:
np.ones
- 随机数填充数组:
np.random.rand
- 指定值填充数组:
np.array
函数有两个重要的参数:
- 数组的形状。对于一个二维数组,这就是(行数,列数)。
- 元素的数据类型。默认情况下,NumPy 使用
浮点数
作为其数据类型。对于图像,我们将使用不带正负号的 8 位整数(unsigned 8-bit integers)np.uint8
。这背后的原因是 unsigned 8-bit integers 的范围是 0 到 255,这与像素值的范围相同。
譬如:我们要创建一个大小是 4x3
的全 0
填充数组,我们可以通过使用 np.zeros(4,3)
来实现。类似地,如果我们想创建一个全 1
填充的 4x3
数组,我们可以使用 np.ones(4,3)
。
有了 NumPy 数组之后,就可以使用 npArray.shape
查找数组的形状,其中 npArray
是 NumPy 数组的名称。
import numpy as np # 导入NumPy模块
# 创建一个5行6列的2D NumPy数组,用零填充
npArray = np.zeros((5,6))
print(npArray) # 输出刚刚创建的数组
'''
[[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]]
'''
print(npArray.dtype) # 输出数组元素的数据类型
# float64
print(npArray.shape) # 输出数组的形状
# (5, 6)
# 输出数组中的行数
print("数组中的行数(row) = {}".format(npArray.shape[0]))
# 输出数组中的列数
print("数组中的列数(columns) = {}".format(npArray.shape[1]))
'''
数组中的行数(row) = 5
数组中的列数(columns) = 6
'''
创建一个 5 行 6 列全 0 填充的数组
现在,我们将使用前面看到的其他命令来创建大小相同的数组,即(5,6),并且指定数据类型(np.uint8
)。 让我们创建一个全 10填充的数组。
# 创建一个全1填充的数组,形状大小为(5,6),数据类型为(np.uint8)
npArray = np.ones((5,6), dtype=np.uint8)
print(npArray) # 输出刚刚创建的数组
'''
[[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]
'''
print(npArray.dtype) # 输出数组元素的数据类型
# uint8
print(npArray.shape) # 输出数组的形状
# (5, 6)
# 输出数组中的行数
print("数组中的行数(row) = {}".format(npArray.shape[0]))
# 输出数组中的列数
print("数组中的列数(columns) = {}".format(npArray.shape[1]))
'''
数组中的行数(row) = 5
数组中的列数(columns) = 6
'''
创建随机数填充数组
我们将创建一个用随机数填充的数组。 请注意,在构建由随机数填充的数组时,我们无法指定数据类型。
# 创建一个随机数填充的数组,形状大小同样是(5,6)
npArray = np.random.rand(5,6)
print(npArray) # 输出刚刚创建的数组
'''
[[0.76493029 0.4244641 0.96668388 0.87860886 0.00654919 0.46697776]
[0.20844501 0.40487349 0.51814253 0.06393495 0.21362829 0.64340518]
[0.8480972 0.65643116 0.08282768 0.09566009 0.90510305 0.74211234]
[0.64052005 0.85885759 0.48681204 0.73636393 0.65345601 0.2980164 ]
[0.37037381 0.28148836 0.15755969 0.32690712 0.56888984 0.16034325]]
'''
创建指定值填充数组
# 创建指定值填充数组
npArray = np.array([[1,2,3,4,5,6],
[7,8,9,10,11,12],
[13,14,15,16,17,18],
[19,20,21,22,23,24],
[25,26,27,28,29,30]],
dtype=np.uint8)
print(npArray) # 输出刚刚创建的数组
'''
[[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]
[13 14 15 16 17 18]
[19 20 21 22 23 24]
[25 26 27 28 29 30]]
'''
小结
我们看到了如何使用不同的函数创建 NumPy 数组,如何指定其数据类型以及如何显示其形状。