как разбить массив на количество подмассивов в python - PullRequest
0 голосов
/ 02 февраля 2020

Я пытаюсь разделить массив на количество подмассивов с помощью NumPy. Я случайно сгенерировал массив x в диапазоне от 0 до 1, и я хочу разделить этот массив на равные интервалы. Поэтому, если мне нужно 5 интервалов, это будут интервалы от 0 до 0,2, от 0,2 до 0,4, от 0,4 до 0,6, от 0,6 до 0,8 и от 0,8 до 1,0, и я хочу отсортировать этот массив в эти деления.

x=np.array(np.random.uniform(0,1,100))

def partition_array(array,S):
    a = np.linspace(0,1,S+1)
    b = np.partition(array,0)
    print(a)
    print(b)

partition_array(x,5)

a создает мои интервалы с выбранным числом, а b просто упорядочивает мой массив. Я попытался использовать функцию zip и сделать al oop для считывания a и b, но не смог найти решение. Какие-либо предложения? Спасибо.

1 Ответ

1 голос
/ 02 февраля 2020

Если нет необходимости получать массив в качестве вывода, вы можете использовать списки.

import numpy as np
x=np.array(np.random.uniform(0,1,100))
#print("Array: ") <-- debug
#print(x)
y = x.tolist()
#print("List: ")  <-- debug
#print(y)

def divide_chunks(l, n):
    for i in range(0, len(l), n):
        yield l[i:i + n]

x = list(divide_chunks(y, 3))
print("Divided list: ")
print(x)

Обратите внимание, что N в этом случае - это размер подсписков, которые вы получаете в качестве вывода.

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