如何更改 python 中列表数组的数组形状?
How to change array shape of list array in python?
我有从 json 文件加载的 (808,1,22,2000) 列表数组。
它有 808 个 (22,2000) 个数组。
所以我想把它变成 (22,2000,808)。
你能告诉我怎么做吗?
虽然这里有歧义,因为不清楚你为什么要改变形状,但如果我是对的,numpy.reshape
应该是你的答案。
看这个例子:
>> a = np.array([[[[0,1,2,3],[4,5,6,7]]],[[[8,9,10,11],[12,13,14,15]]],[[[16,17,18,19],[20,21,22,23]]]])
>> a
array([[[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]]],
[[[ 8, 9, 10, 11],
[12, 13, 14, 15]]],
[[[16, 17, 18, 19],
[20, 21, 22, 23]]]])
>> a.shape
(3, 1, 2, 4)
>> b = a.reshape((a.shape[2],a.shape[3],a.shape[0]))
>> b
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]],
[[12, 13, 14],
[15, 16, 17],
[18, 19, 20],
[21, 22, 23]]])
>> b.shape
(2, 4, 3)
我有从 json 文件加载的 (808,1,22,2000) 列表数组。
它有 808 个 (22,2000) 个数组。
所以我想把它变成 (22,2000,808)。
你能告诉我怎么做吗?
虽然这里有歧义,因为不清楚你为什么要改变形状,但如果我是对的,numpy.reshape
应该是你的答案。
看这个例子:
>> a = np.array([[[[0,1,2,3],[4,5,6,7]]],[[[8,9,10,11],[12,13,14,15]]],[[[16,17,18,19],[20,21,22,23]]]])
>> a
array([[[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]]],
[[[ 8, 9, 10, 11],
[12, 13, 14, 15]]],
[[[16, 17, 18, 19],
[20, 21, 22, 23]]]])
>> a.shape
(3, 1, 2, 4)
>> b = a.reshape((a.shape[2],a.shape[3],a.shape[0]))
>> b
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]],
[[12, 13, 14],
[15, 16, 17],
[18, 19, 20],
[21, 22, 23]]])
>> b.shape
(2, 4, 3)