问题背景: numpy默认先行后列的方式输出, 我想要改为先列后行
方法:
1, 交换数组的维度 transpose swapaxes 错误!
2, reshape函数,并指定参数
order='F'来进行列优先的排序 正确
原理:
T 二维数组转置 等同于transpose
将4*2的数组转化为2*4
transpose 轴对换 高维数组转置 交换数组的维度 整个轴进行对换
swapaxes 指定两轴对换
transpose可以一次搞三个,但是swapaxes只能两两置换
代码:
方法1 错误!
ca = np.array( object=(.5, .4, .1, 0, .3, .2, .4, .2) ).reshape( (4, 2) ) result = np.array( object=(.5, .3, .4, .2, .1, .4, 0, .2) ).reshape( (4, 2) ) 请将ca 转化 为 result
要将ca转换为result,您可以使用np.transpose()函数来交换数组的维度。在这种情况下,您可以使用以下代码进行转换:
import numpy as np
ca = np.array(
object=(.5, .4, .1, 0, .3, .2, .4, .2)
).reshape(
(4, 2)
)
result = np.transpose(ca)
print(result)方法2 正确
ca = np.array( object=(.5, .4, .1, 0, .3, .2, .4, .2) )
result = np.array( object=( (.5, .3), (.4, .2), (.1, .4), (0, .2) ) )
请将ca按照先列后行的顺序,转化为4行2列的array, 即转化为result
要按照先列后行的顺序将ca转换为4行2列的数组,你可以使用NumPy的reshape函数,并指定参数order='F'来进行列优先的排序。下面是正确的代码:
import numpy as np
ca = np.array((.5, .4, .1, 0, .3, .2, .4, .2))
result = ca.reshape(4, 2, order='F')
print(result)输出结果为:
[[0.5 0.3]
[0.4 0.2]
[0.1 0.4]
[0. 0.2]]现在,ca已经按照先列后行的顺序转换为了4行2列的数组result,与你所期望的结果一致。
















