Python中如何将形状为(1,9,1)的NumPy数组转换为(1,3,3)形状
解答
形状为(1,9,1)的数组B完全可以转换为你需要的(1,3,3)形状的B1。两个形状的总元素个数完全相等(均为9),且原数组的元素排列顺序和目标数组的行优先顺序完全匹配,直接调用numpy的reshape方法即可完成转换,不需要额外做轴交换、转置类操作。
完整可运行代码
import numpy as np B = np.array([[[0.67873113], [1.24442563], [0.02109 ], [0.76788408], [2.00615422], [3.07375839], [1.037729 ], [5.03294753], [0.0105 ]]]) print("B shape =", B.shape) # 执行形状转换 B1 = B.reshape(1, 3, 3) print("B1 =", B1) print("B1 shape =", B1.shape)
运行结果
代码执行后输出和你给出的期望值完全一致:
B shape = (1, 9, 1) B1 = [[[0.67873113 1.24442563 0.02109 ] [0.76788408 2.00615422 3.07375839] [1.037729 5.03294753 0.0105 ]]] B1 shape = (1, 3, 3)
补充说明:numpy默认的
reshape采用行优先(C顺序)读写元素,原数组最后一个维度长度为1,不会打乱元素排列顺序,因此直接调整形状即可匹配目标输出。
内容的提问来源于stack exchange,提问作者Wiz123
相关产品推荐
相关产品推荐

