Распечатать массив Numpy в виде таблицы - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь сделать это с базовым Python ... Я знаю, что есть модули, которые будут делать это.

Ниже приведены желаемые результаты, я хотел бы распечатать в консолиили терминал с равным интервалом.Желательно что-то вроде ниже, кроме цвета фона.Черный - заголовок, таблица - только строки возвращенного массива numpy.

enter image description here

Код: импортировать numpy как np

A=np.array([[6.0,-2.0,1.0],[-2.0,7.0,2.0],[1.0,2.0,-5.0]])
b=np.array([11.0,5.0,-1.0])

class Solution:

    def print_out(temp_d):
        temp_report=np.zeros((np.shape(temp_d[0])[0],len(temp_d.keys())))
        i=0
        for key,val in temp_d.items(): 
            for j in range(len(val)):
                temp_report[j][i]=val[j]
            i+=1
        return temp_report

    def Jacobi(A,b,N=25,guess=None,threshold=0.000001):

        ### Initialize dictionary
        temp_d={}
        ### Set lag to zero for current and prior value comparison.
        x2=0
        ### Create components.
        D=np.zeros(A.shape,float)
        np.fill_diagonal(D,np.diag(A))
        L=np.tril(A,k=-1)
        U=np.triu(A,k=1)

        c=np.diag(np.linalg.inv(D)*b).reshape(A.shape[0],1)
        G=np.diag(np.linalg.inv(D)).reshape(A.shape[0],1)*(L+U)*-1

        if guess is None:
            x=np.zeros(A.shape[0])

        for i in range(N):
            x=c+np.dot(G,x)
            if abs(np.sum(x)-np.sum(x2)) < threshold:
                break        
            x2=x

            temp_d[i]=np.diag(x)

        report_array=Solution.print_out(temp_d)

        return report_array

jacobi_solution=Solution.Jacobi(A,b,N=15,guess=None)

print(jacobi_solution)  

1 Ответ

0 голосов
/ 03 февраля 2019

Я думаю, что добавление следующего кода в конце вашего будет делать то, что вы хотите.

header = np.array(range(0,15))
#
with np.printoptions(linewidth=160,formatter={'int': '{:8d}'.format}):
    print(header)
with np.printoptions(linewidth=160,formatter={'float': '{: 0.5f}'.format}):    
    for line in range(0,jacobi_solution.shape[0],1):
        print(jacobi_solution[line,:])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...