numpy.atleast_3d
numpy.atleast_3d(*arys) [source]
将输入查看为至少具有三个维度的数组。
参数 : | arys1, arys2, … :array_like 一个或多个类似数组的序列。 非数组输入将转换为数组。 保留已经具有三个或三个以上维度的数组。 |
返回值 : | res1, res2, … :ndarray 一个数组或数组列表,每个数组均带有 尽可能避免复制,并返回三个或更多尺寸的视图。 例如,形状为 而形状为 |
例子
1)一维数组转三维
import numpy as np arr1d = np.array([1, 2, 3]) arr3d = np.atleast_3d(arr1d) print("原数组:") print(arr1d) print("转换后的数组:") print(arr3d) print("转换后的形状:", arr3d.shape)
2)二维数组转三维
import numpy as np arr2d = np.array([[1, 2, 3], [4, 5, 6]]) arr3d = np.atleast_3d(arr2d) print("原数组:") print(arr2d) print("转换后的数组:") print(arr3d) print("转换后的形状:", arr3d.shape)
3)三维数组保持不变
import numpy as np arr3d = np.array([[[1, 2, 3], [4, 5, 6]]]) arr3d_converted = np.atleast_3d(arr3d) print("原数组:") print(arr3d) print("转换后的数组:") print(arr3d_converted) print("转换后的形状:", arr3d_converted.shape)
4)多个数组输入
import numpy as np arr1d = np.array([1, 2, 3]) arr2d = np.array([[4, 5, 6]]) arr3d = np.array([[[7, 8, 9]]]) results = np.atleast_3d(arr1d, arr2d, arr3d) for i, res in enumerate(results, 1): print(f"数组 {i}:") print(res) print("形状:", res.shape) print()
5)使用示例
import numpy as np # 将标量转换为三维数组 result1 = np.atleast_3d(3.0) print(result1) # 输出: array([[[3.]]]) x = np.arange(12.0).reshape(4, 3) # 检查数组的 base 属性(x 是 reshape 的,所以它的 base 属性没有改变) is_base_same = np.atleast_3d(x).base is x.base print(is_base_same) # 输出: True # 将多个不同形状的数组转换为三维数组,并打印其形状 arrays = [np.atleast_3d([1, 2]), np.atleast_3d([[1, 2]]), np.atleast_3d([[[1, 2]]])] for arr in arrays: print(arr, arr.shape)