如何解决将 numpy 数组的每一行保存到文件的单独行中,而不是将其分开
我有以下 numpy 数组:
matrix = numpy.zeros([30,30],dtype = numpy.int32)
conf_mat = open("conf_mat.txt","w")
conf_mat.write(str(matrix))
但是文件中的结果是这样的
[[ 0 0 0 8 161 0 18 0 0 0 0 0
13 0 1 0 140 2 0 0 8 0 14 0
0 0 0 0 0 0]
[ 0 0 0 41 31 0 39 0 0 0 0 0
44 0 0 0 21 39 0 0 39 0 105 0
0 0 0 0 0 0]
[ 0 0 0 71 162 0 155 0 0 1 0 0
6 0 0 0 350 110 0 0 8 0 21 0
0 0 0 0 0 0]
...
如您所见,矩阵的 1 行在文档中被分成 3 行。 如何将矩阵的整行写在文件的一行上?
PS:我不知道这是否有区别,但我通过 ssh 连接使用远程 linux 服务器。
解决方法
要保存 numpy 数组,请使用 numpy.save
(npy 格式)或 numpy.savetxt
(CSV/纯文本),并加载 numpy.load
或 numpy.loadtxt
,请参阅 {{3} } 和 https://numpy.org/devdocs/user/how-to-io.html
numpy.savetxt
只能存储一维或二维数组。要将数据存储为整数值而不是指数符号,请使用 fmt='%d'
作为 numpy.savetxt
的关键字参数,例如numpy.savetxt("foo",matrix,fmt='%d')
。有关格式标志的详细信息,请查看 https://numpy.org/doc/stable/reference/routines.io.html
有点跑题:你也可以使用pandas来保存numpy矩阵:
@RunWith(SpringRunner.class)
public class PermissionCheckTests {
@Autowired // you need to autowire
private PermissionCheck permissionCheck; // and it uses @MockBean dependency
@MockBean // if no such @MockBean exists
private MyEntityRepository myEntityRepository; // the real implementation is used
@Test
public void shouldHasPermission() {
MyEntity myEntity = new MyEntity();
when(this.myEntityRepository.findById(any())).thenReturn(myEntity);
assertTrue(this.permissionCheck.hasPermission(0));
}
}
(如果您使用 >>> import pandas as pd
>>> import numpy as np
>>> pd.DataFrame(np.zeros([4,2])).to_csv()
',1\n0,0.0,0.0\n1,0.0\n2,0.0\n3,0.0\n'
>>>
,它将被写入磁盘)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。