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带来的好处。