Как получить доступ к строкам в ndarray с индексами, хранящимися в другом массиве? - PullRequest
0 голосов
/ 01 ноября 2018

Допустим, у меня есть 1 2D массив 1000x20:

X = np.random.randint(0,5001,size=(1000,20))

И второй 1D массив с 1000 случайными числами:

row_indices = np.random.permutation(X.shape[0])

Я хотел бы получить доступ только к X строкам из row_indices [0: 600], row_indices [600: 800] и row_indices [800: 1000]. Какой лучший подход?

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете передать (нарезанную) версию row_indices как индекс в X, чтобы получить соответствующие строки.

Таким образом, мы можем сделать три переменные y1, y2 и y3, каждая из которых получит свою долю X с:

X = np.random.randint(0,5001,size=(1000,20))
row_indices = np.random.permutation(X.shape[0])

y1 = X[row_indices[0:600]]
y2 = X[row_indices[600:800]]
y3 = X[row_indices[800:1000]]

Здесь y1 - это матрица 600 & times; 20 , которая содержит строки из X с индексами row_indices для первых 600 индексов и т. Д.

...