我有两个numpy结构化数组arr1
,arr2
。arr1
具有字段['f1','f2','f3']
。arr2
具有字段['f1','f2','f3','f4']
。即:
arr1 = [[f1_1_1, f2_1_1, f3_1_1 ], arr2 = [[f1_2_1, f2_2_1, f3_2_1, f4_2_1 ],
[f1_1_2, f2_1_2, f3_1_2 ], [f1_2_2, f2_2_2, f3_2_2, f4_2_2 ],
... , ... ,
[f1_1_N1, f2_1_N1, f3_1_N1]] [f1_2_N2, f2_2_N2, f3_2_N2, f4_2_N2]]
我想将arr1
的各个片分配给arr2
的相应片(索引和字段中的片)。有关各种情况,请参见下文。
从我发现的答案(到相关,但不是完全相同的问题),在我看来,唯一的方法是一次为单个字段分配一个切片,即类似
arr2['f1'][0:1] = arr1['f1'][0:1]
((我可以确认这是可行的),遍历切片中的所有源字段。
是否可以同时分配切片中所有预期的源字段?
x
案例1(仅arr1
中的某些字段)
arr1 = [[ x , x , f3_1_1 ], arr2 = [[ x , x , f3_2_1, f4_2_1 ],
[ x , x , f3_1_2 ], [ x , x , f3_2_2, f4_2_2 ],
... , ... ,
[f1_1_N1, f2_1_N1, f3_1_N1]] [f1_2_N2, f2_2_N2, f3_2_N2, f4_2_N2]]
案例2(arr1
中的所有字段)>
arr1 = [[ x , x , x ], arr2 = [[ x , x , x , f4_2_1 ], [ x , x , x ], [ x , x , x , f4_2_2 ], ... , ... , [f1_1_N1, f2_1_N1, f3_1_N1]] [f1_2_N2, f2_2_N2, f3_2_N2, f4_2_N2]]
案例3
arr1
具有字段['f1','f2','f3','f5']
。arr2
具有字段['f1','f2','f3','f4']
。分配一个['f1','f2','f3']
来源:
Python Numpy Structured Array (recarray) assigning values into slices
Convert a slice of a structured array to regular NumPy array in NumPy 1.14
我有两个numpy结构化数组arr1,arr2。 arr1具有字段['f1','f2','f3']。 arr2具有字段['f1','f2','f3','f4']。即:arr1 = [[f1_1_1,f2_1_1,f3_1_1],arr2 = [[f1_2_1,f2_2_1,...
例如,您可以这样做: