使用Python在矩阵中添加自定义维度

1. 使用Python生成矩阵

在Python中生成矩阵可以使用numpy模块。下面是一个简单的生成一个3 x 3矩阵的代码:

import numpy as np

matrix = np.zeros((3, 3))

print(matrix)

上面的代码输出矩阵的结果为:

[[0. 0. 0.]

[0. 0. 0.]

[0. 0. 0.]]

2. 添加自定义维度

添加自定义维度即在原矩阵的基础上增加一个维度。在numpy中,我们可以使用np.newaxis来实现。下面的代码演示了如何在一个3 x 3矩阵中增加一个维度:

import numpy as np

matrix = np.zeros((3, 3))

new_matrix = matrix[:, :, np.newaxis]

print(new_matrix.shape)

上面的代码输出矩阵的结果为:

(3, 3, 1)

可以看到,原来的3 x 3矩阵增加了一个维度,变成了3 x 3 x 1的矩阵。

3. 在矩阵中添加数据

3.1 在矩阵末尾添加数据

在numpy中,我们可以使用np.concatenate函数将多个矩阵合并成一个。下面的代码演示了如何在原矩阵的末尾添加数据:

import numpy as np

matrix = np.zeros((3, 3))

data = np.ones((3, 1))

new_matrix = np.concatenate([matrix, data], axis=1)

print(new_matrix)

上面的代码输出矩阵的结果为:

array([[0., 0., 0., 1.],

[0., 0., 0., 1.],

[0., 0., 0., 1.]])

可以看到,原矩阵的每一行末尾都添加了一个1。

3.2 在矩阵中间添加数据

在numpy中,我们可以使用np.insert函数在矩阵的某个位置插入数据。下面的代码演示了如何在原矩阵的第二列中插入数据:

import numpy as np

matrix = np.zeros((3, 3))

data = np.array([[1], [2], [3]])

new_matrix = np.insert(matrix, 1, data, axis=1)

print(new_matrix)

上面的代码输出矩阵的结果为:

array([[0., 1., 0., 0.],

[0., 2., 0., 0.],

[0., 3., 0., 0.]])

可以看到,原矩阵的第二列中插入了数据。

4. 小结

在numpy中,我们可以使用np.newaxis来增加自定义维度,使用np.concatenate和np.insert函数在矩阵中添加数据。

下面是完整的代码:

import numpy as np

matrix = np.zeros((3, 3))

new_matrix = matrix[:, :, np.newaxis]

print(new_matrix.shape)

data = np.ones((3, 1))

new_matrix = np.concatenate([matrix, data], axis=1)

print(new_matrix)

data = np.array([[1], [2], [3]])

new_matrix = np.insert(matrix, 1, data, axis=1)

print(new_matrix)

后端开发标签