我有这样一个数组:
A=[ id. r d ]
[[ 47. 223.25190261 58.0551391 ]
[ 49. 223.25102751 58.05662719]
[ 57. 223.25013049 58.05139459]]
第一列并不重要。下面两个是坐标。你知道吗
我必须将每组坐标(第2列和第3列一起)与这些坐标进行比较: (223.251,58.05)通过使用这个方程:B=sin(D)sin(D)+cos(D)cos(D)cos(R-R)。你知道吗
其中(R,D)是原始坐标(223.251,58.05),(R,D)是数组中的坐标。 如何对数组中的每一组坐标执行此操作,而不必自己输入数字或定义每个数字并用下一组坐标替换它们?我希望程序明显地保持(R,D)的一致性,改变每一行的(R,D),并进行计算。计算完每一行后,我想把它们输出。我真的不知道该怎么做,我在想可能是有循环的东西。我真的迷路了。 代码的结尾是:
B=(((sin(dec0))*(sin(dec1)) + (cos(dec0)*cos(dec1))*(cos(ra0-ra1))))
print B
0.540302302454
但这只做第一行坐标,我希望它是手动完成的
我不确定公式是否正确,数据是否具有代表性,因为你们的值非常接近。无论如何,要打印数据中每个项的
B
值,可以使用:如果您有numpy数组作为输入,那么使用
numpy
模块而不是math
。你知道吗如果您愿意使用NumPy,可以对操作进行矢量化,避免for循环,例如:
其中
B
是一个numpy.ndarray
,包含A
的每一行的结果。你知道吗相关问题 更多 >
编程相关推荐