У меня есть следующий код
import numpy as np
import pandas as pd
test_array = np.array([(1, 2, 3), (4, 5, 6)],
dtype={'names': ('a', 'b', 'c'), 'formats': ('f8', 'f8', 'f8')})
test_df = pd.DataFrame.from_records(test_array)
test_df.to_records().view(np.float64).reshape(test_array.shape + (-1, ))
Я ожидаю, что будет возвращено представление оригинала test_array
с формой (2, 3)
, однако я получаю этот массив (2, 4)
.
rec.array([[0.e+000, 1.e+000, 2.e+000, 3.e+000],
[5.e-324, 4.e+000, 5.e+000, 6.e+000]],
dtype=float64)
Откуда взялся дополнительный столбец, столбец 0?
Редактировать: Я только что узнал, что могу использовать DataFrame.values()
, чтобы сделать то же самое, но мне по-прежнему любопытно, почему это поведениесуществует.