gpt4 book ai didi

python - 在 Python 中 reshape Julia 存储的数组

转载 作者:行者123 更新时间:2023-12-01 08:49:40 25 4
gpt4 key购买 nike

我已经被这个问题困扰了一段时间,所以我决定向你寻求帮助。所以,简而言之,我的问题如下......

我的所有代码都在 Julia 中,并且它们处理的数据已像 Julia 那样存储(我猜是按列主顺序),但现在我需要在 python 中运行一些代码来读取其中一些数据并 reshape 它。但是,由于数据在两种语言中的存储和读取方式不同,因此 reshape 的行为并不像我预期的那样(并不是说它是错误的,只是不是我想要的)举个例子...在 Julia 中,当我将一维数组 reshape 为 (2,3,4) 数组维度时,我得到:

julia> a=collect(1:24);
julia> r=reshape(a,2,3,4)
2×3×4 Array{Int64,3}:
[:, :, 1] =
1 3 5
2 4 6

[:, :, 2] =
7 9 11
8 10 12

[:, :, 3] =
13 15 17
14 16 18

[:, :, 4] =
19 21 23
20 22 24

在 python 中我得到,

b=np.arange(1,25);
r=b.reshape(4,2,3)

给出

In [200]: r
array([[[ 1, 2, 3],
[ 4, 5, 6]],

[[ 7, 8, 9],
[10, 11, 12]],

[[13, 14, 15],
[16, 17, 18]],

[[19, 20, 21],
[22, 23, 24]]])

有什么方法可以在 Python 中实现与 Julia 示例中获得的结果相同的结果吗?..

最佳答案

你可以写:

>>> np.transpose(b.reshape(4,3,2), (2,1,0))
array([[[ 1, 7, 13, 19],
[ 3, 9, 15, 21],
[ 5, 11, 17, 23]],

[[ 2, 8, 14, 20],
[ 4, 10, 16, 22],
[ 6, 12, 18, 24]]])

编辑:

https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.transpose.html 中所述np.transpose 的第二个参数根据作为第二个参数给出的值排列数组的轴。实际上,在这种情况下,您只需编写 np.transpose(b.reshape(4,3,2)) 因为默认情况下 np.transpose 会反转此处所需的尺寸.

关于python - 在 Python 中 reshape Julia 存储的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53177456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com