如何在数组中循环并将该数组中的每个元素与另一个数组中的每个元素进行比较?

时间:2017-08-15 18:20:12

标签: python arrays space

我对python非常不熟悉,并且已经完成了一些python编码的任务。我需要将数组't'中的每个元素与数组'r'中的所有元素进行比较。我的目标是找出't'数组中的任何元素(标量)是否被'r'数组中的所有标量至少200个单位隔离;也就是说,如果它们与'r'数组中的所有元素相隔200个单位或更多,我想将它们标记为'隔离'。

我想这是一个相当简单的操作,我对结构不熟悉。提前感谢您抽出宝贵时间帮助我。非常感激!

如果有任何帮助,这里是使用的代码:

import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate
from math import sqrt

from astropy import units as u
from astropy.coordinates import SkyCoord

omega_m = 0.3
omega_lam = 0.7
H0 = 70.    # Hubble parameter at z=0, km/s/Mpc
c_kms = 299792.458 # speed of light, km/s
dH = c_kms / H0          # Hubble distance, Mpc


def inv_efunc(z):
""" Used to calculate the comoving distance to object at redshift
z. Eqn 14 from Hogg, astro-ph/9905116."""
return 1. / sqrt(omega_m * (1. + z)**3 + omega_lam)

# read in data from file
r = np.genfromtxt('coma_vicinity.dat', dtype=None, skip_header=0,
              names='ra,dec,cz,r,g,z,rp',
              usecols=(0, 1, 2, 3, 4, 5, 5))

# Calculate the comoving distance corresponding to each object's             
redshift
dist = np.array([dH * integrate.quad(inv_efunc, 0, cz)[0] for cz in     
r['cz']])

c1 = SkyCoord('12h59m48.7s','+27d58m05s',frame='icrs')
c2 = SkyCoord(r['ra']*u.deg,r['dec']*u.deg,frame='icrs')
sep = c1.separation(c2)

r['rp'] = sep.radian*dist

t = np.genfromtxt('UDGs.csv',dtype=None, skip_header=0,names='nm,ra,dec',usecols=(1,2,3))

0 个答案:

没有答案
相关问题