微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 numpy 数组的每一行保存到文件的单独行中,而不是将其分开

如何解决将 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.loadnumpy.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 举报,一经查实,本站将立刻删除。