python numpy savetxt 输出一个多维数组到txt,如何保持格式

dust_dust 2015-03-12 04:49:18
np.savetxt(filename,result_array,fmt='%s',newline='\n')


如何让,fmt='%s'中%s的个数等于result_array的维数
比如
result_array
array([[1, 2, 3],
[4, 5, 6]])

如何让fmt='%s %s %s',这样输出到txt中才能保持两行三列的格式
...全文
36251 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qianyi1216 2017-11-15
  • 打赏
  • 举报
回复
引用 10 楼 libralibra 的回复:
[quote=引用 5 楼 shaode0101 的回复:] 比如,定义一个函数专门用来做savetxt
def savetxt(filename,x):
np.savetxt(filename,x,fmt='%s',newline='\n')
x的维数是未知的
注意参看函数说明: http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html fmt的说明有 c.a list of specifiers, one per column 结合numpy自己的内置函数获得列数目即可 试试下面的代码
import numpy as np

result_array1 = np.array([[1,2,3,],[4,5,6]])
result_array2 = np.array([[4,5,6],[7,8,9]])

file_name1 = r'c:\test_save1.txt'
file_name2 = r'c:\test_save2.txt'

np.savetxt(file_name1,result_array1,fmt=['%s']*result_array1.shape[1],newline='\n')
np.savetxt(file_name2,result_array1,fmt=['%s']*result_array2.shape[1],newline='\n')
[/quote] TypeError: Mismatch between array dtype ('int32') and format specifier ('%s %s %s %s')还是会报错呢
libralibra 2015-03-13
  • 打赏
  • 举报
回复
引用 5 楼 shaode0101 的回复:
比如,定义一个函数专门用来做savetxt
def savetxt(filename,x):
np.savetxt(filename,x,fmt='%s',newline='\n')
x的维数是未知的
注意参看函数说明: http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html fmt的说明有 c.a list of specifiers, one per column 结合numpy自己的内置函数获得列数目即可 试试下面的代码
import numpy as np

result_array1 = np.array([[1,2,3,],[4,5,6]])
result_array2 = np.array([[4,5,6],[7,8,9]])

file_name1 = r'c:\test_save1.txt'
file_name2 = r'c:\test_save2.txt'

np.savetxt(file_name1,result_array1,fmt=['%s']*result_array1.shape[1],newline='\n')
np.savetxt(file_name2,result_array1,fmt=['%s']*result_array2.shape[1],newline='\n')
乔巴好萌 2015-03-12
  • 打赏
  • 举报
回复
"% s" * (result.size/len(result))
dust_dust 2015-03-12
  • 打赏
  • 举报
回复
引用 7 楼 openXMPP 的回复:
应该是 result.size/len(result)
请看我后面的回复,我知道可以求出x的维度,但怎么写到fmt里面呢?
乔巴好萌 2015-03-12
  • 打赏
  • 举报
回复
应该是 result.size/len(result)
乔巴好萌 2015-03-12
  • 打赏
  • 举报
回复
引用 4 楼 shaode0101 的回复:
引用 2 楼 openXMPP 的回复:
result.size()/len(result)
我是要输出多个这样的数组,他们的维数不一样,有的三个有的四个等等
result.size()/len(result) 这不就是一个动态值吗
dust_dust 2015-03-12
  • 打赏
  • 举报
回复
比如,定义一个函数专门用来做savetxt
def savetxt(filename,x):
np.savetxt(filename,x,fmt='%s',newline='\n')
x的维数是未知的
dust_dust 2015-03-12
  • 打赏
  • 举报
回复
引用 2 楼 openXMPP 的回复:
result.size()/len(result)
我是要输出多个这样的数组,他们的维数不一样,有的三个有的四个等等
dust_dust 2015-03-12
  • 打赏
  • 举报
回复
引用 1 楼 mujiok2003 的回复:
 np.savetxt("dump.txt",x, fmt="%f,%f,%f")
我是要输出多个这样的数组,他们的维数不一样,有的三个有的四个等等
乔巴好萌 2015-03-12
  • 打赏
  • 举报
回复
result.size()/len(result)
mujiok2003 2015-03-12
  • 打赏
  • 举报
回复
 np.savetxt("dump.txt",x, fmt="%f,%f,%f")
资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 Python 是数据分析和科学计算领域中广泛使用的编程语言,而 NumPy 是其核心库之一,专注于多维数组和矩阵运算的优化。CSV(逗号分隔值)文件是一种常用的数据存储格式,通过文本形式简单地表示表格数据。借助 NumPyPython 可以轻松地将数组或矩阵数据保存为 CSV 文件,同时也能方便地读取 CSV 文件中的数据。 在使用 NumPy 读取 CSV 文件数据时,loadtxt 函数是主要工具。该函数能够读取文本文件中的数据,并将其以数组或矩阵的形式加载到内存中。loadtxt 函数提供了多种参数,例如 delimiter 参数用于指定数据之间的分隔符,skiprows 参数则用于跳过文件中的前几行数据。例如,对于一个使用逗号分隔的 CSV 文件 test.csv,可以通过以下代码将其数据读取到数组 my_matrix 中: 需要注意的是,rb 模式表示以二进制方式读取文件,但通常 CSV 文件作为文本文件,无需使用二进制模式。此外,skiprows=0 表示从文件的第一行开始读取数据,不跳过任何行。 将数组或矩阵保存为 CSV 文件时,可以使用 NumPy 的 savetxt 函数。该函数允许用户将数组或矩阵保存为文本文件,并且可以自定义数据分隔符、行和列的格式等。例如,如果有一个数组 my_matrix,想要将其保存为新的 CSV 文件 new.csv,可以使用以下代码: 在这段代码中,"new.csv" 是目标文件名,my_matrix 是待保存的数组,delimiter="," 指定了数据项之间使用逗号作为分隔符。 NumPy 的 savetxt 和 loadtxt 函数提供了丰富的参数来控制数据的读取和保存方式。例如,可以通过 fmt 参数指定数据保存的格式(如整数

37,744

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧