Аналог numpy-индексов для многомерного массива luaPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Аналог numpy-индексов для многомерного массива lua

Сообщение Anonymous »

В numpy к любому ndarray можно получить доступ, указав кортеж целых чисел. Таким образом, если мы построим массив произвольных размеров и заполним его, используя формулу, основанную на индексах элемента, получить доступ к элементу будет просто, предоставив кортеж с индексами элемента:
< pre class="lang-py Prettyprint-override">

Код: Выделить всё

import numpy as np

a = np.zeros((5,4,3,2))
def ivalue(index):
return (index[0]-index[3])/(index[1]+index[2]+1)

for index, _ in np.ndenumerate(a):
a[index] = ivalue(index)

index = (0,3,2,1)

print(a[index])  // -1/6
В lua относительно легко построить тот же массив. Например

Код: Выделить всё

a = {}
for i=1, 5 do
a[i] = {}
for j=1, 4 do
a[i][j] = {}
for k=1, 3 do
a[i][j][k] = {}
for l=1, 2 do
a[i][j][k][l] = (i-l)/(j+k-1)
end
end
end
end

io.write(a[1][4][3][2]) -- -1/6
Но теперь предположим, что нам нужно написать программу, в которой по индексам мы хотим вернуть значение; в numpy это просто, поскольку (пока index соответствует структуре массива) мы можем написать [index] и все готово. Но в lua я не могу придумать, как по заданному index={1,4,3,2} я мог бы получить сохраненное значение. В родном Python та же проблема, поэтому я подумал, что, возможно, существует расширение lua, которое работает с индексами многомерных массивов.


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

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

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

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

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

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

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