我有一个叫做通量极限的值数组:
flux_limit = np.array([0.08333333,0.11785113,0.14433757...])
里面有99个值。我试图使用这些值作为条件使用np.哪里()搜索我读过的python目录。我想从目录中得到满足这两个条件的每个通量限制的值的数量:
^{pr2}$我希望,因为这是给出满足这两个条件的值的索引,所以我将得到一个列表列表,每个内部列表对应一个flux_限制值。我知道如何只使用一个值执行此操作,但在for循环中抛出此值时遇到错误:
ValueError: operands could not be broadcast together with shapes (3636586,) (2,).
我在google上搜索了这个错误的含义,但是答案通常是针对用户的问题的,我没有足够的悟性来诊断我的问题。在
编辑:
catalog['snu_arr'][6] = [ 4.81194684e-09 5.13640614e-08 5.48405854e-09 ..., 2.95787549e-06 3.43822015e-09 2.17239404e-09]
catalog['zgal'] = [ 0.01027171 0.01691939 0.01614619 ..., 10.18688393 10.21286678 10.20675182]
这个目录很大,3636586个值,这是错误消息中第一个数字的来源。在
编辑2: 所以目录['zgal']和目录['snu_arr'][6]的长度相同。在
print(catalog['zgal'].shape, catalog['snu_arr'][6].shape)
>>>((3636586L,), (3636586L,))
以下是我对通量限制中只有一个值所做的操作:
index = np.where((catalog['snu_arr'][6]*1000 > .083) & (catalog['zgal'] > 6.))
print(index)
作为输出
(array([3615964, 3616643, 3616732, 3617188, 3618296, 3618976, 3619040,
3619205, 3619429, 3620039, 3620142, 3620185, 3620487, 3620810,
3621045, 3621375, 3621396, 3621828, 3622030, 3622326, 3622713,
3622999, 3623137, 3623202, 3624357, 3624919, 3625077, 3626185,
3626558, 3626666, 3627142, 3627279, 3627660, 3628004, 3628558,
3629997, 3630053, 3630128, 3630801, 3631271, 3631567, 3632210,
3632269, 3632285, 3632589, 3633107, 3633816, 3634833, 3635190,
3635307, 3635608, 3635711, 3635767, 3636159, 3636227], dtype=int64),)
据我所知,这些是满足上述两个条件的价值指标。由于某些原因,它以列表的形式给出输出,因此我使用len()查找值的数量。在
print(len(index[0]))
>> 55
目前没有回答
相关问题 更多 >
编程相关推荐