pythonnumpy生成二进制流_python/numpy生成的二进制文件,由C读取

我正在用python创建一个5*7整数矩阵二进制文件,名为random_from_python_国际数据,然后我从C读取这个二进制文件。不知怎么的我无法得到正确的数字

下面是我生成这个矩阵的python代码:import numpy as np

np.random.seed(10)

filename = "random_from_python_int.dat"

fileobj = open(filename, mode='wb')

b = np.random.randint(100, size=(5,7))

b.tofile(fileobj)

fileobj.close

这将生成一个矩阵

^{pr2}$

但当我从下面的C代码中读到:#include

#include

int main()

{

/* later changed 'double' to 'int', but that still had issues */

double randn[5][7];

char buff[256];

FILE *latfile;

sprintf(buff,"%s","random_from_python_int.dat");

latfile=fopen(buff,"r");

fread(&(randn[0][0]),sizeof(int),35,latfile);

fclose(latfile);

printf("\n %d %d %d %d %d %d %d",randn[0][0],randn[0][1],randn[0][2],randn[0][3],randn[0][4],randn[0][5],randn[0][6]);

printf("\n %d %d %d %d %d %d %d",randn[1][0],randn[1][1],randn[1][2],randn[1][3],randn[1][4],randn[1][5],randn[1][6]);

printf("\n %d %d %d %d %d %d %d",randn[2][0],randn[2][1],randn[2][2],randn[2][3],randn[2][4],randn[2][5],randn[2][6]);

printf("\n %d %d %d %d %d %d %d",randn[3][0],randn[3][1],randn[3][2],randn[3][3],randn[3][4],randn[3][5],randn[3][6]);

printf("\n %d %d %d %d %d %d %d\n",randn[4][0],randn[4][1],randn[4][2],randn[4][3],randn[4][4],randn[4][5],randn[4][6]);

}

它将给我(调整空间以避免在stackoverflow站点上滚动):28 15 64 93 29 -163754450 9

40 73 0 16 11 -163754450 8

33 88 62 17 91 -163754450 54

256 0 1830354560 0 4196011 -163754450 119

4197424 4197493 1826683808 4196128 2084711472 -163754450 12

我不知道怎么了。我尝试过用python编写一个float矩阵,并在C中将其读作double,效果很好。但是这个整数矩阵不起作用。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值