выберите значения из массива до указанного значения в python

#python #pandas #numpy

Вопрос:

Я получаю данные, как показано ниже

z = 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0

Т = 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000

Я хочу выбрать данные » T «до определенного значения «z», скажем, 0,6. Я хочу иметь обобщенный метод, в котором каждый раз, когда я могу указать значение «z», и он может возвращать как z, так и T. Следующий шаг-я хочу выбрать данные между двумя значениями z, которые я указываю. Скажем, z=0,1 и z=0,7, и это должно дать мне от 100 до 700 вместе со значениями z. Может ли кто-нибудь предложить что-нибудь на Python? Заранее спасибо!

Комментарии:

1. Я думаю, что вы тянетесь zip() вместе с itertools.takewhile() И. itertools.dropwhile()

2. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Я хочу иметь обобщенный метод, в котором каждый раз, когда я могу указать значение «z», он может возвращать как z, так и T.

 def getT(z_value):
    return [z_value,T[z.index(z_value)]]
 

Пример использования:

 >> getT(0.1)
[0.1, 100]
 

где первое значение-это z, а второе значение-соответствующее T.

Следующий шаг-я хочу выбрать данные между двумя значениями z, которые я указываю. Скажем, z=0,1 и z=0,7, и это должно дать мне от 100 до 700 вместе со значениями z.

 def getTbounded(lowerz,upperz):
    return [z[z.index(lowerz):z.index(upperz) 1],
           T[z.index(lowerz):z.index(upperz) 1]]
 

Пример использования:

 >> getTbounded(0.1,0.7)
[[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7], [100, 200, 300, 400, 500, 600, 700]]
 

где первый список-это значения z, а второй список-значения T.