我已经使用非常大的DataFrame工作了一段时间,我一直在使用csv格式来存储输入数据和结果.我注意到大量时间用于读取和写入这些文件,例如,这会大大减慢批处理数据的速度.我想知道文件格式本身是否相关.是否有更快的读/写Pandas DataFrames和/或Numpy数组的首选文件格式?
当我使用 scikit-learn 的 k-means 实现时,我通常只调用该fit()
方法,这足以获取聚类中心和标签。该predict()
方法是用来计算标签的,fit_predict()
为了方便,甚至可以使用一种方法,但是如果我只能使用 获取标签fit()
,那么该predict()
方法的目的是什么?
我有一个以下形式的DataFrame:
a b c
0 1 4 6
1 3 2 4
2 4 1 5
Run Code Online (Sandbox Code Playgroud)
我有一个列名列表,我需要使用它来创建一个新的DataFrame,使用与每个标签对应的第一个DataFrame的列.例如,如果我的列列表是['a','b','b','a','c'],则生成的DataFrame应为:
a b b a c
0 1 4 4 1 6
1 3 2 2 3 4
2 4 1 1 4 5
Run Code Online (Sandbox Code Playgroud)
我一直试图找出一种执行此操作的快速方法,因为我正在处理极其庞大的DataFrame,我不认为循环是一个合理的选择.
我一直在使用小批量k-means,使用scikit-learn实现来聚类大约45000个观测数据集,每个数据集大约有170个特征.我注意到,当k增加时,算法无法返回指定数量的聚类,如果k超过数据集中观察数量的约30%(45000的30%)并继续增加,则返回的聚类数量会增加不再增加了.
我想知道这是否与scikit-learn中实现算法的方式有关,或者是否与其定义有关.我一直在研究提出它的论文,但我无法弄清楚为什么会这样.
有没有人经历过这个?现在有人如何解释这种行为?