String file = "/home/sam/PycharmProjects/train.bin";
FileInputStream fis = new FileInputStream(file);
DataInputStream ds = new DataInputStream(fis);
int count = ds.available();
short features[][] = new short[count / (2 * 2048)][2048]; //i know the size of my data.
int idx = 0;
while (ds.available() > 0) {
// read two bytes from data input, return short
short k = ds.readShort();
int row = idx / 2048;
int column = idx % 2048;
features[row][column] = k;
idx++;
}
对于一个可以以二进制格式保存numpy数据的简单数组,我首先在python中使用
data = data.astype(">i2")
将数据更改为一个2byte有符号整数。由于我没有保存任何关于endianness的信息,所以我将把numpy数组转换为big endian。然后我可以使用numpy.ndarray.tofile()
函数保存numpy值。在然后我用java读取这个二进制数据:
相关问题 更多 >
编程相关推荐