我想把一个完整的矩阵作为Python的输入,并将其存储在一个数据框中。Pandas可以使用read_csv函数自动完成,但它需要一个CSV文件。我想直接在输入处输入/复制粘贴一个矩阵。而不指定其高度或宽度,并使用换行符作为分隔符智能地分隔行和列,并将其存储在 Dataframe 中。csv源代码,但这一切都超出了我的头。您的帮助将不胜感激。
什么是矩阵:基本上是一个数学表或数据框,看起来像这样... matrix in a notepad
到目前为止我想到的都是老一套:
'''
inp=input("Enter the Size of Your Matrix: ")
inp=inp.translate({ord(i): None for i in 'x ,'})
w=int(inp[0])
h=int(inp[1])
print(w, "and", h)
df=pd.DataFrame()
for x in range(h):
for i in range(w):
m=input("Enter Data into Matrix at Position")
print(x,",",i)
df.loc[x,i]=m
print(df)
'''我想做的是,如果我有一个像上面所示的那样复制的矩阵,我可以直接使用它作为输入来存储在 Dataframe 中,并且我希望代码足够智能,以便在有换行符的地方自动拆分行。
1条答案
按热度按时间nhjlsmyf1#
您可以使用
sys.stdin.read()
从stdin中很好地读取...。现在您得到了类似
[['2', '3', '4'], ['6', '7', '8'], ['4', '1', '1']]
的文件,可以将其转换为所需的格式。请注意,粘贴矩阵后,仍需要通知系统停止阅读。在Windows中,可以先使用
Ctrl + Z
,然后使用Enter
。在Linux中,可以使用Ctrl + D
(之后不输入)。