数组重塑为 n*n
Array reshape into n*n
我有这段代码,我在其中创建 n * n 个条目并保存输入的数据,但我想保持矩阵的形状,例如,当我创建一个 2*2 时,矩阵应该如下所示保存:[[1 2][3 4]]
但是当我保存它时它看起来像:[1 2 3 4]
如何重塑它?
from tkinter import *
import numpy as np
root = Tk()
root.geometry('800x300')
root.title('PythonExamples.org - Tkinter Example')
global e1
global numm
global my_entry
my_entry= Entry(root)
e1=Entry(root)
e1.place(x=100,y=180)
entries=[]
new_array=[]
def create():
numm=int(e1.get())
global my_entry
for x in range(numm):
for i in range(numm):
my_entry = Entry(root)
my_entry.grid(row=x, column=i)
entries.append(my_entry)
def save():
my_array = [int(entry.get()) for entry in entries]
new_array = np.asarray(my_array)
print(new_array)
create = Button(root,text='Submit',command=create).place(x=40,y=180)
save = Button(root,text='calc',command=save).place(x=40,y=210)
my_label=Label(root,text='')
root.mainloop()
因为您已经拥有 numpy.array
,您可以轻松使用 .reshape
import numpy as np
my_array = [1,2,3,4]
new_array = np.asarray(my_array).reshape((2,2))
print(new_array)
产出
[[1 2]
[3 4]]
注意:出于演示目的,我使用 2
的固定值,您应该使用 numm
代替,它的检索方式应与 create
函数中的相同。
create
函数应修改为:
def create():
numm = int(e1.get())
global my_entry
for x in range(numm):
row = []
for i in range(numm):
my_entry = Entry(root)
my_entry.grid(row=x, column=i)
row.append(my_entry)
entries.append(row)
save
函数应修改为:
def save():
my_array = [[int(el.get()) for el in row] for row in entries]
new_array = np.asarray(my_array)
print(new_array)
示例输出为:
[[1 2 3]
[4 5 6]
[7 8 9]]
我有这段代码,我在其中创建 n * n 个条目并保存输入的数据,但我想保持矩阵的形状,例如,当我创建一个 2*2 时,矩阵应该如下所示保存:[[1 2][3 4]] 但是当我保存它时它看起来像:[1 2 3 4]
如何重塑它?
from tkinter import *
import numpy as np
root = Tk()
root.geometry('800x300')
root.title('PythonExamples.org - Tkinter Example')
global e1
global numm
global my_entry
my_entry= Entry(root)
e1=Entry(root)
e1.place(x=100,y=180)
entries=[]
new_array=[]
def create():
numm=int(e1.get())
global my_entry
for x in range(numm):
for i in range(numm):
my_entry = Entry(root)
my_entry.grid(row=x, column=i)
entries.append(my_entry)
def save():
my_array = [int(entry.get()) for entry in entries]
new_array = np.asarray(my_array)
print(new_array)
create = Button(root,text='Submit',command=create).place(x=40,y=180)
save = Button(root,text='calc',command=save).place(x=40,y=210)
my_label=Label(root,text='')
root.mainloop()
因为您已经拥有 numpy.array
,您可以轻松使用 .reshape
import numpy as np
my_array = [1,2,3,4]
new_array = np.asarray(my_array).reshape((2,2))
print(new_array)
产出
[[1 2]
[3 4]]
注意:出于演示目的,我使用 2
的固定值,您应该使用 numm
代替,它的检索方式应与 create
函数中的相同。
create
函数应修改为:
def create():
numm = int(e1.get())
global my_entry
for x in range(numm):
row = []
for i in range(numm):
my_entry = Entry(root)
my_entry.grid(row=x, column=i)
row.append(my_entry)
entries.append(row)
save
函数应修改为:
def save():
my_array = [[int(el.get()) for el in row] for row in entries]
new_array = np.asarray(my_array)
print(new_array)
示例输出为:
[[1 2 3]
[4 5 6]
[7 8 9]]