ccs*_*csv 4 numpy reshape python-3.x julia
如果我在 python 中重塑我使用这个:
import numpy as np
y= np.asarray([1,2,3,4,5,6,7,8])
x=2
z=y.reshape(-1, x)
print(z)
Run Code Online (Sandbox Code Playgroud)
得到这个
>>>
[[1 2]
[3 4]
[5 6]
[7 8]]
Run Code Online (Sandbox Code Playgroud)
我如何在 julia 中得到同样的东西?我试过:
z = [1,2,3,4,5,6,7,8]
x= 2
a=reshape(z,x,4)
println(a)
Run Code Online (Sandbox Code Playgroud)
它给了我:
[1 3 5 7
2 4 6 8]
Run Code Online (Sandbox Code Playgroud)
如果我使用reshape(z,4,x)它会给
[1 5
2 6
3 7
4 8]
Run Code Online (Sandbox Code Playgroud)
还有一种方法可以在不指定第二维的情况下进行重塑,reshape(z,x)或者如果第二维更加模糊?
我认为您所遇到的是NumPy 以行优先顺序存储,而Julia 以列主要顺序存储数组,如此处所述。
所以 Julia 正在做 numpy 会做的事情,如果你使用
z=y.reshape(-1,x,order='F')
Run Code Online (Sandbox Code Playgroud)
你想要的是你第一次尝试的转置,这是
z = [1,2,3,4,5,6,7,8]
x= 2
a=reshape(z,x,4)'
println(a)
Run Code Online (Sandbox Code Playgroud)
你想知道假设数组是二维的,是否有什么东西可以计算二维?从来没听说过。可能是ArrayViews?这是一个简单的功能开始
julia> shape2d(x,shape...)=length(shape)!=1?reshape(x,shape...):reshape(x,shape[1],Int64(length(x)/shape[1]))
shape2d (generic function with 1 method)
julia> shape2d(z,x)'
4x2 Array{Int64,2}:
1 2
3 4
5 6
7 8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1741 次 |
| 最近记录: |