我有一个带有2个数字字段的python numpy ndarray。想要向其添加第三个字段,这只是两者的乘积。两列分别命名为“ A”和“ B”,我希望第三列称为“ C”。我应该如何进行?
答案 0 :(得分:1)
这是one way:
numpy.core.records.fromarrays([arr['A'], arr['B'], arr['A']*arr['B']], names='A,B,C')
numpy.lib.recfunctions.append_fields(arr, 'C', arr['A']*arr['B'])
请注意,这些将返回包含所有列的新数组。无法就地添加列。
答案 1 :(得分:0)
也可以,但是更冗长
import numpy as np
my_array = np.random.random_sample((10,2))
array_c = my_array[:,0]* my_array[:,1]
dt = [('A', float), ('B', float), ('C', float)]
my_array = np.column_stack((my_array, array_c)).astype(dt)