import os
import pyfits as ps
import lomb
import numpy as np
import matplotlib.pyplot as plt
hdulist = ps.open('filename')
tbdata = hdulist[1].data
PDCFlux = tbdata.field(7)
PDCFlux = PDCFlux[~np.isnan(PDCFlux)]
psd,freq = lomb.lomb(Timesec,PDCFlux)
logpsd = np.log10(psd)
logfreq = np.log10(freq)
#want an associated 'slope'.
'''PDC Slope'''
PDCFluxrange = PDCFlux.all[np.log10(4*(10**(-5)))<freq<np.log10(4*(10**(-7)))]
在最后一行中,我试图创建一个新的数组:PDCFluxrange
,它由log10(4*(10**(-5)))
和log10(4*(10**(-7))
之间的PDCFlux
组成。在
当我在Pylab中运行该程序时,我收到一条类似于:Value Error: The truth value of an array with more than one element is ambiguous
的错误消息。使用a.any()
或{
在这种情况下,我不确定如何在代码中正确使用这两个函数中的任何一个,而不创建循环或定义新函数;我认为可能有一个更简单的方法来完成相同的事情。在
我想你想
这对你有用吗?我希望我对你的代码理解正确。在
每个条件(
^{pr2}$a > 2
和a < 8
)都在创建一个长度等于a
的布尔numpy数组,并且在a
中的每个位置包含条件的真值。在然后,使用numpy.logical_and来找到两个条件均为真的位置。在
最后,将生成的数组用作boolean or "mask" index array,仅从原始数组中检索满足条件的元素。在
我认为您得到的是}这样的语句首先调用
ValueError
,因为尽管a > 2
是有效的(实际上只是调用a.__gt__(2)
,但是像{cmp(2,a)
,这对我来说是相同的ValueError
:相关问题 更多 >
编程相关推荐