Я хочу сделать что-то вроде этого.
import numpy
# Create a 10x10 array of random numbers.
example_array = numpy.random.random_integers(0, 10, size=(10, 10))
# Locate values that equal 5 and turn them into a new random number.
example_array[example_array == 5] = numpy.random.random_integers(0, 10)
Проблема с последней строкой.Он применяет одно случайное число ко всем замаскированным значениям вместо нового случайного числа для каждого значения.Например, если выбрано число 2, все значения, которые == 5 становятся равными 2. Я хочу, чтобы для каждого из них было совершенно новое значение, а не для всех, чтобы они имели одинаковое случайное значение.Надеюсь это имеет смысл!Пожалуйста, посоветуйте.
Извинения за любую путаницу.У меня пока нет обалденной терминологии.
Вот еще один пример, который может помочь.
# Before replacing 5's with a random number.
array=[4, 5, 5,
5, 2, 3,
5, 4, 5]
# After replacing 5's with a random number.
array=[4, 1, 4,
7, 2, 3,
2, 4, 8]
Кажется, что-то, что должно быть легко сделать, но я не могу понять, каксделать это эффективно.Я хочу сделать это, используя маску для скорости.Мой в настоящее время работающий (и очень медленный!) Метод - это циклически проходить по массиву и бросать кубик для любых значений, которые требуют рандомизации.