小编mae*_*ist的帖子

绘制椭圆轨道

我正在尝试编写一个代码,使用椭圆r = a(1-e ^ 2)/(1 + e*cos(theta))的等式绘制对象的椭圆路径.我也希望将这些数据放入数组中以供其他用途.

from numpy import *#Imports Python mathematical functions library
import matplotlib.pyplot as plt #Imports plot library
from pylab import *

a = 5
e = 0.3
theta = 0
while theta <= 2*pi:
    r = (a*(1-e**2))/(1+e*cos(theta))
    print("r = ",r,"theta = ",theta)
    plt.polar(theta, r)
    theta += pi/180

plt.show()
Run Code Online (Sandbox Code Playgroud)

代码为r和theta吐出正确的值,但是图是空白的.出现极坐标图窗口,但没有绘制任何内容.

请帮忙.提前致谢.

python matplotlib astronomy orbital-mechanics

4
推荐指数
1
解决办法
5119
查看次数

从图像中堆叠星形 PSF;对齐子像素中心

我有一个 (1727,1853) 大小的数组(图像),其中我已经确定了星星来模拟点扩散函数。数组的每个索引对应一个图像坐标,然而,每个恒星的质心由一个子像素坐标给出。我必须做以下事情

  1. 制作每颗星星的二维切片。我已经使用 numpy 的数组切片做到了这一点。但是,它按索引切片,并且我有亚像素质心坐标,因此我制作的任何类型的切片都会使恒星偏离中心。

  2. 在我制作了每颗恒星的 2D 切片之后,我必须将这些阵列堆叠在一起以制作点扩散函数的模型。只要每颗恒星的子像素中心对齐,这很简单。

我的问题是对齐这些子像素坐标并将每个 2D 切片堆叠在一起的最有效(和正确)方法是什么?

我希望这很清楚。任何帮助将非常感激。下面是其中一颗恒星的 2D 切片(不是很好的一个),但是它偏离了中心,因为按索引划分的 numpy 切片和恒星的质心具有亚像素坐标。

在此处输入图片说明

python arrays numpy astronomy

4
推荐指数
1
解决办法
1175
查看次数

选择数组的每n个索引

如果我有一个长度为100个元素的数组,那么获得每个n个索引的Pythonic方法最多.例如,如果我想要一个数组的每5个索引,a我怎么能得到一个数组b=[[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14],...],其中每个元素b是每5个索引的子数组?

python arrays numpy

2
推荐指数
1
解决办法
44
查看次数

大多数Pythonic方式交叉引用两个列表

问题:

我需要在long列表(~600,000个条目)和short列表(~300,000个条目)之间执行一些有点复杂的交叉引用任务.我试图找到这两个列表之间的类似条目,每个条目唯一由三个不同的整数(叫他们确定int1,int2int3).根据一个列表中的三个整数标识符,我想看看那些相同的三个整数是否在另一个列表中,并返回它们是哪些.

尝试:

首先,我将long列表中的每个三位整数元组压缩为一个名为的数组a.同样,我将short列表中的每个三元组元组压缩为一个名为的数组b:

a = [(int1,int2,int3),...] # 600,000 entries
b = [(int1,int2,int3),...] # 300,000 entries
Run Code Online (Sandbox Code Playgroud)

然后我遍历每个条目,a看看它是否在b.如果是,我将相应的元组附加到循环外的数组中c:

c= []
for i in range(0,len(a),1):
    if a[i] in b:
        c.append(a[i])
Run Code Online (Sandbox Code Playgroud)

迭代(毫不奇怪)非常缓慢.我猜Python有检查ba[i],在每次迭代(〜30万次!),和它的迭代60万次.现在已经花了一个多小时还没有完成,所以我知道我应该优化一些东西.

我的问题是:执行此交叉引用的最Pythonic或最快的方法是什么?

python arrays numpy list-comprehension pandas

0
推荐指数
1
解决办法
959
查看次数