gpt4 book ai didi

python - numpy.ndarray.tofile 在 x 个条目后带有分界线?

转载 作者:行者123 更新时间:2023-11-28 22:32:05 24 4
gpt4 key购买 nike

我目前正在使用 numpy.ndarray.tofile 函数传递存储在 numpy.ndarray 中的数据,该函数内置于 numpy.ndarray .

此功能的问题在于,它会在长行中输出所有数据,因此很难全面了解数据。是否可以让它输出 x 个条目然后换行然后继续或类似的东西?..

我可以打开一个文件,并将 ndarray 转换为 string,但这也会导致一些格式问题,这就是为什么我想用 numpy.ndarray.tofile 函数

我有一个写入文件的过程,它将它转换为不同的格式。无法执行转换,因为它无法识别何时开始。

我收到错误信息:

Expected "[", got "[-0.32252067" File position at start is 142665, currently 142678

但是tofile却不是这样

最佳答案

这里是写一个txt文件的基本演示

制作一个漂亮的二维数组:

In [1083]: arr=np.arange(100).reshape(10,10)
In [1084]: arr
Out[1084]:
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
[20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
[30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
[40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
[50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
[60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
[70, 71, 72, 73, 74, 75, 76, 77, 78, 79],
[80, 81, 82, 83, 84, 85, 86, 87, 88, 89],
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]])

tofile写入:

In [1085]: arr.tofile('text.txt',sep=' ')

In [1086]: cat text.txt
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99In [1087]:

结果是一个平面列表,有分隔符,但没有换行符。这是 tofile 的正常操作。 tofile 的真正目的是编写二进制文件,为方便起见,使用文本替代。

要获得更多控制,请使用 savetxt:

In [1091]: np.savetxt('text.txt', arr, delimiter=' ', fmt='%.2f')
In [1092]: cat text.txt
0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00
10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00
20.00 21.00 22.00 23.00 24.00 25.00 26.00 27.00 28.00 29.00
30.00 31.00 32.00 33.00 34.00 35.00 36.00 37.00 38.00 39.00
40.00 41.00 42.00 43.00 44.00 45.00 46.00 47.00 48.00 49.00
50.00 51.00 52.00 53.00 54.00 55.00 56.00 57.00 58.00 59.00
60.00 61.00 62.00 63.00 64.00 65.00 66.00 67.00 68.00 69.00
70.00 71.00 72.00 73.00 74.00 75.00 76.00 77.00 78.00 79.00
80.00 81.00 82.00 83.00 84.00 85.00 86.00 87.00 88.00 89.00
90.00 91.00 92.00 93.00 94.00 95.00 96.00 97.00 98.00 99.00

这会每行写入数组的“一行”。我可以指定格式。我可以通过控制数组的形状来控制列数。

如果需要,我可以添加页眉和页脚。我可以用 wb 打开一个文件,并使用 savetxt 向其中写入其他内容。

关于python - numpy.ndarray.tofile 在 x 个条目后带有分界线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41317945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com