可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have an numpy array of form
a = [1,2,3]
which I want to save to a .txt file such that the file looks like:
1 2 3
If I use numpy.savetxt then I get a file like:
1
2
3
There should be a easy solution to this I suppose, any suggestions?
回答1:
If numpy >= 1.5
, you can do:
# note that the filename is enclosed with double quotes,
# example "filename.txt"
numpy.savetxt("filename", a, newline=" ")
Edit
several 1D arrays with same length
a = numpy.array([1,2,3])
b = numpy.array([4,5,6])
numpy.savetxt(filename, (a,b), fmt="%d")
# gives:
# 1 2 3
# 4 5 6
several 1D arrays with variable length
a = numpy.array([1,2,3])
b = numpy.array([4,5])
with open(filename,"w") as f:
f.write("\n".join(" ".join(map(str, x)) for x in (a,b)))
# gives:
# 1 2 3
# 4 5
回答2:
An alternative answer is to reshape the array so that it has dimensions (1, N)
like so:
savetext(filename, a.reshape(1, a.shape[0]))
回答3:
import numpy
a = numpy.array([1,2,3])
with open(r'test.txt', 'w') as f:
f.write(" ".join(map(str, a)))
回答4:
I found that the first solution in the accepted answer to be problematic for cases where the newline character is still required. The easiest solution to the problem was doing this:
numpy.savetxt(filename, [a], delimiter='\t')
回答5:
import numpy as np
a = [1,2,3]
b = np.array(a).reshape((1,3))
np.savetxt('a.txt',b,fmt='%d')
回答6:
I know this is old, but none of these answers solved the root problem of numpy not saving the array row-wise. I found that this one liner did the trick for me:
b = np.matrix(a)
np.savetxt("file", b)
回答7:
Very very easy:
[1,2,3]
A list is like a column.
1
2
3
If you want a list like a row, double corchete:
[[1, 2, 3]] ---> 1, 2, 3
and
[[1, 2, 3], [4, 5, 6]] ---> 1, 2, 3
4, 5, 6
Finally:
np.savetxt("file", [['r1c1', 'r1c2'], ['r2c1', 'r2c2']], delimiter=';', fmt='%s')
Note, the comma between square brackets, inner list are elements of the outer list
回答8:
The numpy.savetxt()
method has several parameters which are worth noting:
fmt : str or sequence of strs, optional
it is used to format the numbers in the array, see the doc for details on formating
delimiter : str, optional
String or character separating columns
newline : str, optional
String or character separating lines.
Let's take an example. I have an array of size (M, N)
, which consists of integer numbers in the range (0, 255). To save the array row-wise and show it nicely, we can use the following code:
import numpy as np
np.savetxt("my_array.txt", my_array, fmt="%4d", delimiter=",", newline="\n")
回答9:
just
' '.join(a)
and write this output to a file.