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)