У меня есть Python NumPy Nndarray с 2 числовыми полями. Хотите добавить третье поле, которое является умножением двух. Два столбца названы «A» и «B», и я хочу, чтобы третий столбец назывался «C». Как мне поступить?
тоже работает, но более многословно
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)
Это в одну сторону :
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'])
Обратите внимание, что они вернут новый массив, содержащий все столбцы. Нет способа добавить столбец на место.