У меня есть массив. Допустим, a = array ([[10, 2, 13, 55]]) Я хочу создать функцию, которая дает мне 1-й элемент для t = 0, второй элемент для t = 1 ...

Я пробовал следующее:

def a(t):
    return a[t]
1
Pedro Dente 6 Июл 2019 в 13:41

3 ответа

Лучший ответ

Вы можете сделать это так:

a=array([[10, 2, 13, 55]]) 

def get_value(t):
    return a[t]

get_value(0) #results [10, 2, 13, 55]

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

a=array([[10, 2, 13, 55]]) 

def get_value(t1,t2):
    return a[t1][t2]

get_value(0, 1) #results 2
1
Ayoub 6 Июл 2019 в 11:19

Ваш пример - двумерный массив, поэтому вам нужно 2 параметра, чтобы вернуть правильное число, которое вы хотите. Пример: с вашим массивом a=array([[10, 2, 13, 55]]), a[0,0] возвращает 10, a[0,1] возвращает 2.

Я рекомендую вам создать 1D массив, поместить ваш массив в функцию и назвать вашу функцию отличной от вашего массива

from numpy import array
temp=array([10, 2, 13, 55])
def a(arr,t):
    return arr[t]
print(a(temp, 2))

Пример возврата 13

0
Cuz.I'm.BatMan 6 Июл 2019 в 11:07

Эта функция работает, только если у вас есть массивы формы [[...]], в противном случае вам нужно изменить параметр уровня.

from numpy import array
a=array([[10, 2, 13, 55]])
def matrix_reader(a,t,level=0):
    return a[level][t]
matrix_reader(a,1)
0
Uwe.Schneider 6 Июл 2019 в 11:03