Как эффективно вычислять парные количества в numpy?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как эффективно вычислять парные количества в numpy?

Сообщение Anonymous »

Я хочу вычислить парные величины, например расстояния между двумя точками.
Простым примером может быть

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

import numpy as np

N = 9
x = np.linspace(0,1,N)
y = np.abs(x - x[:,None]) # pairwise 1d eucdlidian distance
В результате будет создан массив (N,N), который содержит расстояния от каждого элемента x до каждого другого элемента x .
Однако нижний (или верхний) треугольник y можно отбросить, поскольку расстояние от x[0] до x[1] — это то же самое, что расстояние от x[1] до x[0].
Может ли кто-нибудь придумать способ никогда не вычислять меньшее ( или верхний) треугольник на первом месте? В идеале это можно было бы обобщить на массивы Nd, например

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

x = np.linspace(0,1,N)
y = x + (1j * x)[:,None] # complex plane
z = np.abs(y[:,:,None,None] - y[None,None,:,:]) # pairwise 2d euclidian distance
и любое попарное количество, например

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

y = np.random.randint(0,2,(N,N))
z = y[:,:,None,None] == y[None,None,:,:] # pairwise equality
Заранее спасибо.
PS: Для всех, кому интересно, это возникло, когда я пытался реализовать функцию энергии для 2D-моделирования отжига.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как эффективно вычислять парные количества в numpy?
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как эффективно вычислять и обрабатывать окрестности вокселей 3x3x3 в 3D-массиве NumPy?
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как эффективно вычислять и обрабатывать окрестности вокселей 3x3x3 в 3D-массиве NumPy?
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Парные данные, расположенные в одной строке, AWK или другой
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Парные данные, расположенные в одной строке, AWK или другом [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

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