📅  最后修改于: 2023-12-03 15:26:57.707000             🧑  作者: Mango
在 NumPy 中,拥有不同维度的数组之间进行复制时会遇到一些问题,其中最常见的问题是如何使附加维度保留。
NumPy 提供了三种解决方式来解决这个问题:reshape、newaxis 和 expand_dims。
使用 reshape 进行转换时,您需要手动指定新的大小。例如,我们有一个形状为 (3, 4) 的数组,现在我们想沿着第二个维度添加一个空维度。这可以使用 reshape 完成:
import numpy as np
arr = np.arange(12).reshape(3, 4)
new_arr = arr.reshape((3, 4, 1))
这个新数组的形状是 (3, 4, 1),它在第三个维度上添加了一个空维度。
使用 newaxis 实现相同的操作,只需要在相应维度上使用新维度运算符即可:
import numpy as np
arr = np.arange(12).reshape(3, 4)
new_arr = arr[:, :, np.newaxis]
这个新数组的形状也是 (3, 4, 1)。
最后,可以使用 expand_dims 函数来添加新的维度。例如:
import numpy as np
arr = np.arange(12).reshape(3, 4)
new_arr = np.expand_dims(arr, axis=2)
这个新数组的形状也是 (3, 4, 1)。这里的 axis 参数确定了要在哪个位置添加新的维度。
以上三个方法可以帮助您在 NumPy 中添加新的维度,使得您可以在不同大小的数组之间进行复制。
无论您选择哪种方法,务必记住添加新的维度是一种相当灵活的方法,您可以根据需要添加任意数量的维度。