任何人都可以给出一些指针,说明为什么Haskell中的不纯计算被建模为monad?
我的意思是monad只是一个有4个操作的界面,那么建模副作用的原因是什么呢?
这已在前面讨论过,但答案相互矛盾:
我想知道的是:
inplace = False默认行为?inplace = True?inplace = True操作是否"真正"就地进行?inplace参数,总是默认为False,意味着原始的DataFrame不受影响,并且操作返回一个新的DF.inplace = True,操作可能适用于原始DF,但它可能仍在幕后复制,只需在完成后重新分配参考.inplace = False:df.dropna().rename().sum()...这很好,并提供延迟评估或更有效的重新排序的机会(虽然我不认为Pandas正在这样做).inplace = True在可能是底层DF的切片/视图的对象上使用时,Pandas必须进行SettingWithCopy检查,这是昂贵的.inplace = False避免这种情况.inplace = True:reset_index()运行速度快两倍,并使用峰值内存的一半!).因此,inplace = True除了专门编写链式语句之外,将copy-vs-view问题放在一边,总是使用它似乎更高效.但这不是默认的熊猫选择,所以我错过了什么?