假设我从一些计算得到一个numpy矩阵.这是我的numpy矩阵'result1'::
result1=
[[ 1. 0. 0. 0.00375 -0.01072 -0. -1000. ]
[ 2. 3. 4. 0. -0.004 750. 0. ]
[ 3. 3. 0. 0. 0. -750. 1000. ]]
Run Code Online (Sandbox Code Playgroud)
现在我想在名为'result.txt'的文本文件中写这个矩阵.为此,我写了以下代码::
np.savetxt('result.txt', result1, fmt='%.2e')
Run Code Online (Sandbox Code Playgroud)
但是它给了我一行矩阵的所有元素.
1.00e+00 0.00e+00 0.00e+00 3.75e-03 -1.07e-02 -1.14e-13 -1.00e+032.00e+00 3.00e+00 4.00e+00 0.00e+00 -4.00e-03 7.50e+02 0.00e+003.00e+00 3.00e+00 0.00e+00 0.00e+00 0.00e+00 -7.50e+02 1.00e+03
Run Code Online (Sandbox Code Playgroud)
我想以适当的矩阵格式在文本文件中编写矩阵.我怎样才能做到这一点?我使用了关键字newline ='\n'或newline ='',但结果是一样的.
提前致谢...
=======
这个编辑的部分是为@Warren
试试这个:
>>> import numpy as np
>>> mat=np.matrix([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
>>> mat
matrix([[1, 2, 3],
[4, 5, …Run Code Online (Sandbox Code Playgroud) 我知道很多人都问过这个问题,但我找不到能解决问题的合适答案.
我有一个数组X ::
X=
[1. 2. -10.]
Run Code Online (Sandbox Code Playgroud)
现在我试图让矩阵Y读取这个X数组.我的代码是::
# make Y matrix
Y=np.matrix(np.zeros((len(X),2)))
i=0
while i < len(load_value):
if X[i,1] % 2 != 0:
Y[i,0] = X[i,0]*2-1
elif X[i,1] % 2 == 0:
Y[i,0] = X[i,0] * 2
Y[i,1] = X[i,2]
i = i + 1
print('Y=')
print(Y)
Run Code Online (Sandbox Code Playgroud)
现在,如果我运行它,它会给出以下错误::
Traceback (most recent call last):
File "C:\Users\User\Desktop\Code.py", line 251, in <module>
if X[i,1] % 2 != 0:
IndexError: too many indices
Run Code Online (Sandbox Code Playgroud)
在这里,我的数组只有一行.如果我使用2行或更多行创建数组X,它不会给我任何错误.只有当X数组有1行时,它才会给出错误.现在,就我而言,数组X可以有任意数量的行.它可以有1行或5行或100行.我想编写一个代码,可以读取任意数量的行X而没有任何错误.我怎么解决这个问题?
提前致谢....
我是编程和python的新手.所以我面临很多问题.我需要一些帮助来阅读python中的文本文件.
在我的输入文本文件中,我有两个带有一些字符串的数据数组.
HEAD1
1 0 0
2 3 4
3 3 0
END1
HEAD2
2 3 4
8 7 5
1 0 7
END2
Run Code Online (Sandbox Code Playgroud)
现在我希望python读取此文件并将这两个数组存储为2个数组或2个矩阵.数组大小不固定,可以是任何大小.Python必须按头和尾决定大小.我该怎么做?
我试过numpy.loadtxt和numpy.getfromtxt.In numpy.getfromtxt,我得到了字符串的错误.没有字符串,它将这两个数组组成1个数组.
这是试图做的,但不能做到....
import math as m
import numpy as np
file_name=input("Input file name(with extension):")
file=open(file_name,'r')
line=file.readline()
while line!= '':
print(line,end='')
line=file.readline()
##table=np.loadtxt(file_name)
##print('table=')
##print(table)
##
table2=np.genfromtxt(file_name,comments='#')
print('table2=')
print(table2)
Run Code Online (Sandbox Code Playgroud)