我有一个包含两个不同维度数组的数组列表。
c = [array([ 3.00493560e+05, 3.04300000e+01, 3.21649837e-01,
6.50984546e+05, 3.00493379e+05, 3.03073203e+01]), array([ 14.])]
我想根据这些尺寸拆分它们,以便有两个独立的数组。
a = array[([ 3.00493560e+05, 3.04300000e+01, 3.21649837e-01,
6.50984546e+05, 3.00493379e+05, 3.03073203e+01]]
b = array[([ 14.])]
我尝试使用np.split(c,6) - 但它基于数组拆分并给定长度并创建一个大数组,因此它不是我所期待的。
我也尝试使用
a = c[c[:, 0] < 1.5]
b = c[c[:, 1] > 5]
它有效但有时我的第二个数组的值与第一个数组的值具有相同的值...
答案 0 :(得分:1)
根据我的理解,您希望将numpy数组列表拆分为单独的python列表。您可以执行以下操作:
a,b = [ [individualArray] for individualArray in c]
这将为您提供所需的输出:
a= [array([ 3.00493560e+05, 3.04300000e+01, 3.21649837e-01,
6.50984546e+05, 3.00493379e+05, 3.03073203e+01]
b= [array([ 14.])]
修改强>
如果c包含2个以上的数组,您可以通过生成拆分数组列表来概括这种方法:
splitArraysList = [ [individualArray] for individualArray in c ]
如果数组非常大,您可以使用生成器而不是列表来迭代拆分列表中的各个数组:
splitArraysList = ( [individualArray] for individualArray in c )
答案 1 :(得分:0)
也许你想要的是这样的:
a = sum([i for i in c if len(i) == 6], [])
b = sum([i for i in c if len(i) == 1], [])
如果您希望a
成为长度为6的所有列表,并且b
为长度为1的所有列表