📜  如何创建具有常量值的 numpy 数组 - Python (1)

📅  最后修改于: 2023-12-03 15:08:28.315000             🧑  作者: Mango

如何创建具有常量值的 Numpy 数组 - Python

在使用 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)指定对角线的偏移量,正数表示在对角线上方的偏移量,负数表示在对角线下方的偏移量。dtypeorder 参数的含义与上面的函数相同。

例如,以下代码创建了一个除了对角线上的元素为 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 提供的常用函数,可以极大地简化数组的创建过程。