Python 如何计算阵列的内部距离

Python 如何计算阵列的内部距离,python,arrays,numpy,Python,Arrays,Numpy,我试图计算数组中两个连续项的内部值之间的距离 例如: >>> _array=[(5, 10), (15, 20), (25, 30), (35, 40)] >>> np_array=[np.array(x) for x in _array] >>> distance=[x - np_array[i - 1] for i, x in enumerate(np_array)][1:] >>> distance [array([1

我试图计算数组中两个连续项的内部值之间的距离

例如:

>>> _array=[(5, 10), (15, 20), (25, 30), (35, 40)]
>>> np_array=[np.array(x) for x in _array]
>>> distance=[x - np_array[i - 1] for i, x in enumerate(np_array)][1:]
>>> distance
[array([10, 10]), array([10, 10]), array([10, 10])]
上面的示例计算项目之间的距离。我真正想要的是数组中任意两个连续项的内部属性之间的距离,即

(15-10),(25-20),(35-30)
所需输出:
[(5)、(5)、(5)]


有什么关于如何进行的建议吗?谢谢。

首先,因为将非NumPy数据结构与NumPy一起使用会破坏整个要点:

_array = numpy.asarray(_array)
然后,只需切片并减去:

distances = array[1:, 0] - array[:-1, 1]

array[1:,0]
获取第一个点之后所有点的第一个坐标,
array[:-1,1]
获取最后一个点之前所有点的第二个坐标,并按元素应用减法。

首先,因为将非NumPy数据结构与NumPy一起使用会破坏整个点:

_array = numpy.asarray(_array)
import numpy as np

a = np.array([(5, 10), (15, 20), (25, 30), (35, 40)])

a[1:, 0] - a[:-1, 1]
然后,只需切片并减去:

distances = array[1:, 0] - array[:-1, 1]

array[1:,0]
获取第一个元组后所有点的第一个坐标,
array[:-1,1]
获取最后一个元组前所有点的第二个坐标,并按元素应用减法。

只需访问当前元组的索引
[0]
,访问前一个元组的索引
[1]

import numpy as np

a = np.array([(5, 10), (15, 20), (25, 30), (35, 40)])

a[1:, 0] - a[:-1, 1]
distance = [x[0] - np_array[i - 1][1] for i, x in enumerate(np_array)][1:]

只需访问当前元组的索引
[0]
,访问上一个元组的索引
[1]

distance = [x[0] - np_array[i - 1][1] for i, x in enumerate(np_array)][1:]

如果OP使用NumPy,那么使用循环和列表理解几乎会破坏NumPy的所有好处。@user2357112,非常感谢您的洞察力。我真的很想利用numpy速度带来的好处。虽然这样做有效,但如果OP使用numpy,使用循环和列表理解进行操作几乎会破坏numpy的所有好处。@user2357112,非常感谢您的洞察力。我真的很想利用numpy speed带来的好处。