Как изменить массив с помощью numpy.where() на основе условного оператора?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как изменить массив с помощью numpy.where() на основе условного оператора?

Сообщение Anonymous »

Я пытаюсь использовать numpy для создания массива из 60 случайных чисел (либо 0, либо 1, т. е. подмножества бинома Бернулли). Эта первая часть кода работает нормально, поскольку генерирует 60 случайных (0Значения или 1 на основе заданной вероятности).
Однако затем я хочу изменить значения этого первого сохраненного массива (сохраненного в «результате») используя numpy.where(), чтобы для каждого элемента, если он равен 1, он стал "Z", а если он равен 0, то он заменялся другим случайным биномом число.
Многие итерации кода показывают, что он заменяет 1 на "Z", но не изменяет ни один из нулей, как в конечном итоге я должен найти новые единицы там, где были нули, но этого не происходит.
import numpy

n = 50 #The number of times to repeat the run
p = 0.1
count = 0

# Day one of the simulation
result = numpy.random.binomial(1, p, 60)
print (result)
for ele in result:
if (ele == 1):
count = count +1
print ("Number Infected:", count)

# Create the matrix to track who is infected
result = numpy.where(result == 1, "Z", numpy.random.binomial(1,p*count))
count = 0
for ele in result:
if (ele == 1):
count = count +1

# while count > 0: EVENTUALLY YOU WILL LOOP TO THIS CONDITION #
# ith day of simulation #
#for ele in result:
# if (ele == 0):
# ele == "X"
# else:
# ele == "I"
print(result)
print("Number Infected:", count)

ТЕКУЩИЙ РЕЗУЛЬТАТ:
[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0]
Number Infected: 5
['0' 'Z' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' 'Z' '0' '0'
'0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'
'0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' 'Z' 'Z'
'0' '0' '0' 'Z' '0' '0']
Number Infected: 0


Подробнее здесь: https://stackoverflow.com/questions/791 ... -statement
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»