pythonnumpy生成二进制流_python-将numpy数组另存为二进制以从FORTRAN中读取

本文介绍了如何使用numpy在Python中生成二进制文件,以便FORTRAN能够正确读取。关键在于在写入前对矩阵进行转置,以匹配FORTRAN的顺序。示例代码展示了创建3D矩阵并将其转置后写入二进制文件的过程,以及相应的FORTRAN代码来验证读取顺序的正确性。
摘要由CSDN通过智能技术生成

您编写的代码几乎是正确的,但是.tofile方法始终以C顺序编写矢量.我不知道为什么在二进制文件中写入时,np.asfortranarray()会避免这种情况,但是我进行了测试,不幸的是,我们需要在转写矩阵之前对矩阵进行转置,以在Fortran中进行正确的读取而没有任何其他顾虑(这意味着您可以给出实际的矩阵尺寸而无需任何转置).

下面的代码用3D矩阵(通常需要使用)来说明我在说什么:

a = np.arange(1,10*3*4+1)

b = a.reshape(10,12,order='F')

array([[ 1, 11, 21, 31, 41, 51, 61, 71, 81, 91, 101, 111],

[ 2, 12, 22, 32, 42, 52, 62, 72, 82, 92, 102, 112],

[ 3, 13, 23, 33, 43, 53, 63, 73, 83, 93, 103, 113],

[ 4, 14, 24, 34, 44, 54, 64, 74, 84, 94, 104, 114],

[ 5, 15, 25, 35, 45, 55, 65, 75, 85, 95, 105, 115],

[ 6, 16, 26, 36, 46, 56, 66, 76, 86, 96, 106, 116],

[ 7, 17, 27, 37, 47, 57, 67, 77, 87, 97, 107, 117],

[ 8, 18, 28, 38, 48, 58, 68, 78, 88, 98, 108, 118],

[ 9, 19, 29, 39, 49, 59, 69, 79, 89, 99, 109, 119],

[ 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]])

b已经在Fortran顺序中

c&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值