1
|
LizardWizard · 技术社区 · 8 年前 |
1
3
您已经很好地描述了如何存储数据,但没有描述算法是什么。例如,如果我们想回答“这组三(x,y)点P1..P3是等边三角形吗”,我们可以这样表述:
哪里
但请注意
在NumPy中,我们希望以可并行的方式进行所有操作。因此,如果你有一个代表1000个三角形的1000x6数组,你需要一次对1000个元素执行所有操作。如果数组名为A,其列为:
然后,第一个操作是:
这可以写得更简洁:
完成后,您可以一次对所有1000x6结果求平方,得到一个1000x6数组R,从中我们将x和y对相加,得到距离的平方:
也就是说:
这给了我们1000x3平方的距离数组S。现在我们只需检查每一行的列是否都相等:
这给了我们1000x1布尔向量,它告诉我们每一行是否是等边三角形。 请注意,我们从未以迭代的方式逐行进行。这是因为在NumPy中这样做比执行逐列操作慢得多。
请注意,我写了上面的内容,假设数组的形状实际上是
因此,最终它只是:
|
July · 如何定义数字间隔,然后四舍五入 1 年前 |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |