Под цепной операцией я подразумеваю, что цепная операция может использовать последний фрейм данных, созданный предыдущими операциями.Например, рассмотрим следующее:
array.ChainableOpA().ChainableOpB().ChainableOpC()
Таким образом, мы можем продолжать делать вещи «постоянно» и более четко.Такой дизайн представлен в pandas
.
numpy
, имеет много функций, которые не являются «методами» класса ndarray
.Например, вы можете позвонить numpy.nanmean
, но нет array.nanmean
.Этот вид дизайна в NumPy запрещает цепные операции.
1) Так с чего бы это?Это из-за проблем с производительностью или из-за дурака?
2) И есть ли у нас решение для этого?Я могу подумать о создании подкласса ndarray
и предоставлении методов, которые вы хотите, но кажется утомительным.И я обнаружил, что после того, как вы создали подкласс ndarray
, среда IDE, которую я использовал, PyCharm, не может распознать ее как массив для отображения в SciView.