2016-04-17 1 views
-2

Я новичок в python, довольно запутался в использовании массива или списка. Пожалуйста, помогите мне с довольно основного использования, как показано ниже, я просто хочу, чтобы разделить данные на две секции, но я не знаю, как:Основное использование python-массива: step-function

# -*- coding: utf-8 -* 
import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib as mpl 
import math 
from pylab import * 

i = np.arange(2,5,0.1) 
t = 1+i 
Light = 10 
if t > 3 : 
    Light = 5 

plt.figure('God Bless: Lightcure') 
plt.plot(i,Light) 
plt.show() 

Но это не сработало, отслеживающий, как показано ниже:

Traceback (most recent call last): 
File "1.py", line 11, in <module> 
if t> 3 : 
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 

Спасибо!

+0

Что вы ожидаете от 'if t> 3'? – interjay

+0

Сделайте то, что предлагает сообщение об ошибке – ForceBru

+1

Кстати, вы должны рассмотреть [изменить название вопроса] (https://meta.stackexchange.com/questions/10647/how-do-i-write-a-good-title) – styvane

ответ

0
# True is where condition is satisfied: numpy.ndarray([False, False, ..., True, True]) 
mask = t > 3 

# Uninitialized array with same shape as t 
Light = numpy.empty_like(t) 

# Light elements set to 5 where corresponding mask elements are True 
Light[mask] = 5 

# Light elements set to 10 where corresponding mask elements are False 
Light[~mask] = 10 
+0

Отлично! Спасибо, боюсь, у меня проблема, как задать вопрос. Еще что-нибудь узнайте от вас, спасибо вам большое! –

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