Изменить результат вывода np.array

1

У меня есть 3 разных файла.txt, и каждый из них содержит координаты x,y,z такие как: Я читал содержимое этих трех файлов:

inputFileList = sorted(glob.glob(inputSourceDir + '/*.txt'), key=lambda x: (int(re.sub('\D', '', x)), x))
inputFileList = inputFileList[0:100]
inputTotalDataList = []
self.numberOfInputFiles = 0

for inputFilePath in inputFileList:
    inputDataInFile = np.genfromtxt(inputFilePath, dtype=float, delimiter=',')  # usecols= 0

    baseWithExt = os.path.basename(inputFilePath)
    base = os.path.splitext(baseWithExt)[0]

    inputTotalDataList.append(inputDataInFile)

    self.numberOfInputFiles = self.numberOfInputFiles + 1

    self.inputTotalData = np.array(inputTotalDataList)
    self.inputTotalData = self.inputTotalData.reshape(self.numberOfInputFiles * len(inputDataInFile), 3)
    print('TotalData: ', inputTotalData )

В качестве вывода я получаю:

TotalData:  [[   7.29948 -187.854    760.208  ]
 [ -41.2607  -188.068    761.008  ]
 [ -13.2162  -193.675    771.235  ]
 [  35.361   -185.632    776.405  ]
 [ -58.8706  -188.025    785.184  ]
 [  12.8998  -196.275    789.446  ]
 [ -27.303   -198.127    791.598  ]
 [ -48.8703  -195.487    812.969  ]
 [  30.4976  -192.05     818.794  ]]

Но я хочу представить каждый прочитанный файл, например:

[[ 7.29948 -187.854    760.208  ]
 [ -41.2607  -188.068    761.008  ]
 [ -13.2162  -193.675    771.235  ]]
[[ 35.361   -185.632    776.405  ]
 [ -58.8706  -188.025    785.184  ]
 [  12.8998  -196.275    789.446  ]]
[[ -27.303   -198.127    791.598  ]
 [ -48.8703  -195.487    812.969  ]
 [  30.4976  -192.05     818.794  ]]

, ,

Как я могу преобразовать свой вывод в желаемый результат выше?

  • 0
    Ваш отступ отключен? (например, последние 3 строки?). Какова цель reshape линии? Вы проверяли self.inputTotalData до этого?
Теги:
numpy

1 ответ

2

Вместо

self.inputTotalData = self.inputTotalData.reshape(self.numberOfInputFiles * len(inputDataInFile), 3)

используйте желаемую внутреннюю форму (3x3) и дайте ей вывести первый (внешний) размер

self.inputTotalData = self.inputTotalData.reshape(-1, 3, 3)
  • 0
    Могу ли я конвертировать что self.inputTotalData np.array в dict после перестройки?
  • 0
    Да, ты можешь. Предполагая, что есть список keys , это можно сделать с помощью dict(zip(keys, self.inputTotalData))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню