Python: удалить случайные значения из многомерного массива numpy - PullRequest
0 голосов
/ 17 июня 2020

Я создал многомерный массив и теперь хочу удалить случайные значения из numpy.ndArray() так, чтобы структура была такой же, т.е. я не хочу перемешивать массив.

`array1 = [[1,2,3][4,5,6][7,8,9]]`

edit: извините за предоставление меньше информации, я хочу удалить элементы случайным образом из нескольких массивов, но в одной позиции во всех массивах.

arr1 = [[1, 2, 3][4, 5, 6][7, 8, 9]]
arr2 = [[11, 12, 13][14, 15, 16][17, 18, 19]]

после удаления:

arr1 = [[1, 2, 3][7, 8, 9]]
arr2 = [[11, 12, 13][17, 18, 19]]
for i in random_pos:
   arr1.remove(i)
   arr2.remove(i)

Также хочу, чтобы из массива было удалено 30% элементов

1 Ответ

1 голос
/ 17 июня 2020

Вы можете просто использовать функцию random.randint дважды. Один для определения подмассива и один для определения элемента в этом подмассиве

arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
random_subarray = random.randint(len(arr))
random_item = random.randint(len(random_subarray))
del arr[random_subarray][random_item]
...