2014-06-17 3 views
1

У меня есть большой размер данных размером numpy в Python и хочу, чтобы записи x (500) в y (520) менялись на равные 1. Я мог бы использовать цикл for но есть ли опрятный, быстрее numpy способ сделать это?Как изменить куски данных в массиве numpy

for x in range(500,520) numpyArray[x] = 1.

Вот цикл, который может быть использован, но кажется, что там может быть функция NumPy, что я не хватает - я предпочел бы не использовать маскированные массивы, Numpy оферты

+0

Что вы пробовали до сих пор? Где ваш код? Какая проблема у него есть? –

ответ

5

вы можете использовать [] для доступа к ряду элементов:

import numpy as np 

a = np.ones((10)) 
print(a) # Original array 
# [ 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.] 
startindex = 2 
endindex = 4 
a[startindex:endindex] = 0 

print(a) # modified array 
# [ 1. 1. 0. 0. 1. 1. 1. 1. 1. 1.] 
+0

Спасибо - я попробовал это, но получал доступ к неправильному набору данных, поэтому код не работал должным образом. Спасибо, что указали на это, поэтому я проверил эту простую опечатку, которую я бы забыл. –

+0

Если это решило ваш вопрос, примите ответ, чтобы вопрос не остался без ответа (отметьте [справка] (http://stackoverflow.com/help/someone-answers)) –

Смежные вопросы