📅  最后修改于: 2023-12-03 15:08:28.315000             🧑  作者: Mango
在使用 Numpy 进行数组运算时,经常需要创建特定的数组。例如,创建所有元素都为 0 或 1 的数组,或者创建一些随机数组等。在本文中,我们将重点介绍如何创建具有常量值的 Numpy 数组。
要创建所有元素都为常量值的数组,可以使用 numpy.zeros()
或 numpy.ones()
函数。这两个函数分别可以创建所有元素都为 0 或 1 的数组。这些函数的基本语法如下所示:
numpy.zeros(shape, dtype=float, order='C')
numpy.ones(shape, dtype=None, order='C')
其中,shape
参数是一个整数或整数元组,它指定创建的数组的形状(即行数和列数)。dtype
参数是可选的数据类型参数,它指定创建的数组的数据类型。默认情况下,数据类型为浮点数。order
参数是可选的,它指定数组的存储顺序。
例如,以下代码创建一个所有元素都为 0 的 2x3 数组和一个所有元素都为 1 的 1x4 数组:
import numpy as np
arr1 = np.zeros((2, 3))
arr2 = np.ones((1, 4))
print(arr1)
print(arr2)
输出结果为:
[[0. 0. 0.]
[0. 0. 0.]]
[[1. 1. 1. 1.]]
可以看到,第一个数组的所有元素都为 0,第二个数组的所有元素都为 1。
有时,我们需要创建一个所有元素都为常量值的数组,但对角线上的元素除外。可以使用 numpy.eye()
函数来创建这样的数组。该函数的语法如下:
numpy.eye(N, M=None, k=0, dtype=<class 'float'>, order='C')
其中,N
参数是数组的行数,M
参数是数组的列数。如果不指定 M
参数,则默认和 N
参数相同,即创建一个正方形矩阵。k
参数(默认为 0)指定对角线的偏移量,正数表示在对角线上方的偏移量,负数表示在对角线下方的偏移量。dtype
和 order
参数的含义与上面的函数相同。
例如,以下代码创建了一个除了对角线上的元素为 2 外,其余元素为 0 的 3x3 数组:
import numpy as np
arr = np.eye(3, k=1) * 2
print(arr)
输出结果为:
[[0. 2. 0.]
[0. 0. 2.]
[0. 0. 0.]]
可以看到,除了对角线上的元素为 0 外,其余元素都为 2。
有时,我们需要创建一个等间距的数组,即数组的元素之间的差值相等。可以使用 numpy.linspace()
函数来创建这样的数组。该函数的语法如下:
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
其中,start
参数是数组的起始值,stop
参数是数组的结束值。num
参数(默认为 50)指定数组中元素的数量。endpoint
参数(默认为 True)指定是否包括 stop
参数的值。retstep
参数(默认为 False)指定是否返回元素之间的间距。dtype
参数指定数组的数据类型。
例如,以下代码创建了一个起始值为 0,结束值为 1,共有 11 个元素的数组:
import numpy as np
arr = np.linspace(0, 1, 11)
print(arr)
输出结果为:
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. ]
可以看到,数组的元素之间的差值均为 0.1。
有时,我们需要创建一个等比数列的数组,即数组的元素之间是等比数列关系。可以使用 numpy.logspace()
函数来创建这样的数组。该函数的语法如下:
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
其中,start
参数是数组的起始值的对数,stop
参数是数组的结束值的对数。num
参数(默认为 50)指定数组中元素的数量。endpoint
参数(默认为 True)指定是否包括 stop
参数的值。base
参数(默认为 10.0)指定对数函数的底数。dtype
参数指定数组的数据类型。
例如,以下代码创建了一个起始值为 10^-2,结束值为 10^2,共有 5 个元素的数组:
import numpy as np
arr = np.logspace(-2, 2, 5)
print(arr)
输出结果为:
[1.00000000e-02 1.77827941e-01 3.16227766e+00 5.62341325e+01
1.00000000e+02]
可以看到,数组的元素之间的比值大约为 1.77827941。
本文介绍了如何创建具有常量值的 Numpy 数组,包括创建所有元素都为常量值的数组、创建所有元素都为常量值的数组(除了对角线)以及创建等间距和等比数列的数组。这些函数都是 Numpy 提供的常用函数,可以极大地简化数组的创建过程。