按Fortran顺序显示Numpy数组,需要使用Numpy库中的reshape函数来改变数组的维度顺序。
具体方法如下:
1.导入Numpy库
import numpy as np
2.创建一个3×3的二维数组
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], order='F')
在创建数组中加上order=’F’表示按照Fortran顺序创建数组。
3.使用reshape函数改变数组的维度顺序
result = np.reshape(matrix, (3, 3), order='C')
在reshape函数中通过order=’C’参数将数组的维度顺序改为C(即按照C语言的顺序)。如果不指定order参数,则reshape函数默认按照C语言的顺序(即按行的顺序)。
4.输出数组
print(result)
输出结果为:
[[1 4 7]
[2 5 8]
[3 6 9]]
可以看到,通过reshape函数改变了数组的维度顺序后,按照C语言顺序输出数组,就得到了按Fortran顺序显示数组的效果。
另外,下面给出一个针对多维数组的示例:
# 创建一个3×3×3的三维数组
array_3d = np.arange(27).reshape((3, 3, 3), order='F')
# 输出原数组
print('原数组:\n', array_3d)
# 将三维数组按Fortran顺序转换为二维数组
array_2d = np.reshape(array_3d, (27, 3), order='F')
# 输出转换后的二维数组
print('按Fortran顺序转换为二维数组:\n', array_2d)
输出结果为:
原数组:
[[[ 0 3 6]
[ 9 12 15]
[18 21 24]]
[[ 1 4 7]
[10 13 16]
[19 22 25]]
[[ 2 5 8]
[11 14 17]
[20 23 26]]]
按Fortran顺序转换为二维数组:
[[ 0 9 18]
[ 1 10 19]
[ 2 11 20]
[ 3 12 21]
[ 4 13 22]
[ 5 14 23]
[ 6 15 24]
[ 7 16 25]
[ 8 17 26]]
通过reshape函数将三维数组按Fortran顺序转换为二维数组后再输出,得到了按Fortran顺序显示多维数组的效果。