(Python3 .x) Разделение массивов и сохранение их в новые массивы - PullRequest
0 голосов
/ 13 февраля 2020

Здравствуйте, StackOverflowers,

Я пишу сценарий Python, предназначенный для разбиения большого массива чисел на равные подмассивы. Для этого я использую метод разбиения Numpy следующим образом:

test=numpy.array_split(raw,nslices)

, где raw - полный массив, содержащий все значения, float64 -типа кстати. nslices - это количество подмассивов, которые я хочу создать из raw массива.

В сценарии nslices может варьироваться в зависимости от размер массива raw , поэтому я бы хотел "автоматически" сохранить каждый созданный под-массив в особом массиве как: resultsarray(i) аналогично тому, как это можно сделать в MATLAB / Octave. Я пытался использовать for in range l oop в Python, но я могу сохранить только последний под-массив в переменной.

Как правильно сохранить подмассив для каждого приращения от 1 до nslices?

Здесь полный код, как он есть сейчас (я Python начинающий, пожалуйста, беспокоить низкий уровень сценария).

import numpy as np
file = open("results.txt", "r")
raw = np.loadtxt(fname=file, delimiter="/n", dtype='float64')
nslices = 3

rawslice = np.array_split(raw,nslices)

for i in range(0,len(rawslice)):
  resultsarray=(rawslice[i])
  print(rawslice[i])

Большое спасибо за помощь в решении этой проблемы!

1 Ответ

0 голосов
/ 13 февраля 2020

Первый - вы облажались с разделителем :) Это должен быть обратный слеш + n \n вместо /n.

Второй - как уже упоминал Серж в комментарии, вы можете просто получить доступ к разделенным частям по индексу ( resultarray[0] до [2]). Но если вы действительно хотите присвоить каждую часть отдельной переменной, вы можете сделать это следующим образом:

result_1_of_3, result_2_of_3, result_3_of_3 = rawslice

print(result_1_of_3, result_2_of_3, result_3_of_3)

Но, вероятно, это не тот способ, которым вы должны go.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...