Форматирование массивов NumPy - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь отформатировать два двухмерных массива, чтобы они были похожи на этот формат: Формат таблицы

В настоящее время я переставил 2 массива, чтобы они выглядели как координаты:

##Transposes both arrays into coordinates
gameSet = np.array((player1,player2)).T

Затем я прошел итерацию по массиву, чтобы получить похожую форму, используя:

##iterates through 2D numpy array
for player1 in range(0, row-1):
    print(" ")
    for player2 in range(0, col-1):
        print (gameSet[player1,player2], end = "")

С помощью приведенного выше кода я получил похожий формат, но хотел бы, чтобы в нем был A1...An и B1 .... Bn на оси '.Любая идея, как я мог сделать это или пакет, который может помочь с форматированием?Все помогает, спасибо!

1 Ответ

0 голосов
/ 17 марта 2019

Пример использования базового форматирования Python

Массив:

In [188]: arr = np.arange(12).reshape(3,4)                                                

Создание меток:

In [189]: rlbl = ['A{}'.format(i) for i in range(arr.shape[0])]                           
In [190]: clbl = ['B{}'.format(i) for i in range(arr.shape[1])]                           

Форматирование строк:

Верхняя строка:

In [192]: tfmt = ' ~   ||'+'|'.join(['%10s']*arr.shape[1])                                
In [193]: tfmt%tuple(clbl)                                                                
Out[193]: ' ~   ||        B0|        B1|        B2|        B3'

строка данных:

In [194]: rfmt = '%5s||'+'|'.join(['%10d']*arr.shape[1])                                  
In [195]: rfmt%(rlbl[0], *tuple(arr[i,:]))                                                
Out[195]: '   A0||         4|         5|         6|         7'

Сбор строк:

In [201]: astr = [_193]                                                                   
In [202]: for i in range(arr.shape[0]): 
     ...:     astr.append(rfmt%(rlbl[i], *tuple(arr[i,:]))) 
     ...:

и печать:

In [203]: print('\n'.join(astr))                                                          
 ~   ||        B0|        B1|        B2|        B3
   A0||         0|         1|         2|         3
   A1||         4|         5|         6|         7
   A2||         8|         9|        10|        11
...