📅  最后修改于: 2023-12-03 15:33:14.421000             🧑  作者: Mango
在NumPy中,我们经常需要填充一个空的数组或向量。使用 zeros()
函数或 ones()
函数可以创建一个所有元素都是 0 或者所有元素都是 1 的数组。但是,有时候我们需要创建一个自己定义的数组,例如只包含 0、1 或任意其他数字。
下面是一些填充数组的基本方法。
要创建一个全是 0 的数组,我们可以使用 zeros()
函数。下面的例子创建一维 5 个元素,每个元素都是 0 的数组:
import numpy as np
arr = np.zeros(5)
print(arr)
输出:
[0. 0. 0. 0. 0.]
我们也可以创建一个多维的 2x3 的矩阵全部填充为 0:
arr = np.zeros((2,3))
print(arr)
输出:
[[0. 0. 0.]
[0. 0. 0.]]
要创建一个全是 1 的数组,我们可以使用 ones()
函数。下面的例子创建一维 5 个元素,每个元素都是 1 的数组:
arr = np.ones(5)
print(arr)
输出:
[1. 1. 1. 1. 1.]
我们也可以创建一个多维的 2x3 的矩阵全部填充为 1:
arr = np.ones((2,3))
print(arr)
输出:
[[1. 1. 1.]
[1. 1. 1.]]
要创建一个数组,其中所有元素都是相同的值,我们可以使用 full()
函数。下面的例子创建一维 5 个元素,每个元素都是 7 的数组:
arr = np.full(5, 7)
print(arr)
输出:
[7 7 7 7 7]
我们也可以创建一个多维的 2x3 的矩阵全部填充为 7:
arr = np.full((2,3), 7)
print(arr)
输出:
[[7 7 7]
[7 7 7]]
我们也可以使用 arange()
函数创建一个连续的数组,然后使用 reshape()
函数将其变形为我们想要的形状。下面的例子创建一个连续的 0 到 4 的数组,然后将其调整为一维 5 个元素的数组:
arr = np.arange(5).reshape(5)
print(arr)
输出:
[0 1 2 3 4]
我们也可以将其调整为多维的 2x3 的矩阵:
arr = np.arange(6).reshape((2,3))
print(arr)
输出:
[[0 1 2]
[3 4 5]]
我们可以使用 tile()
函数将一个数组复制若干次,然后将这些副本连接在一起。下面的例子创建一个 2 个 0 的数组,然后将其复制 3 次并连接在一起:
arr = np.tile(0, 2)
arr = np.tile(arr, 3)
print(arr)
输出:
[0 0 0 0 0 0]
我们也可以将两个数组连接在一起:
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr = np.tile(np.concatenate((arr1, arr2)), 2)
print(arr)
输出:
[1 2 3 4 5 6 1 2 3 4 5 6]
总结:
本文介绍了一些基本方法来使用NumPy填充一个空的数组或向量。使用 zeros()
函数或 ones()
函数可以创建一个所有元素都是 0 或者所有元素都是 1 的数组。使用 full()
函数可以创建一个数组,其中所有元素都是相同的值。使用 arange()
函数和 reshape()
函数,我们可以创建一个连续的数组并调整其形状。使用 tile()
函数复制数组并将这些副本连接在一起。