フルテキスト1455の学習が成長すると期待されている言葉、5 Fenzhongを
出典:Pexels
C言語や囲碁の言語と比較してみましょう顔はそれ、Pythonのスピードは、本当に言葉の多くを引き起こしました。
これは、いくつかの時間のために、著者は、すぐにはPythonの課題に対処する能力に懐疑的となっていることができます。
可能です - - 現在、私は囲碁の言語で科学的データになろうが、操作は、主に起因する言語及び科学的データの静的特性である、主に探索領域に、単にPythonでのように快適ではありません。
言語ソリューションの完全な書き直しがパフォーマンスを向上させることができないと言うことではない行くが、これは別の記事のためのトピックです。
これまでのところ、少なくとも、それはPythonがこの機能より迅速にタスクを処理することができます無視しました。私が悩まされている近視眼的にそれを - これはあなたが唯一の解決策を見たとき、完全に他のプログラム症候群の存在を無視していることの現れです。私たちはこのような状況に自分自身を信じていません。
これは私がパンダ日々の仕事より速く、より快適にするためにどのように今日概説したい理由です。具体的には、この例では、列間反復に焦点を当てて、その過程でデータ操作を実行します。そう前置きなしに、我々は話題に入りました。
出典:Pexels
データセットを作成します
単一のデータフレームをクリアする最も簡単な方法で説明した図1〜100,000の範囲の整数オブジェクトを宣言されています。
本当にスピードの問題パンダを解決するための任意のより複雑なものを必要としません。すべてがうまくいけ確認するには、ここでは、データセットの最初の数行と全体の形状は以下のとおりです。
さて、準備作業は、現在の行を横断し、どのようにされていないデータフレームを横断する方法を見てみましょう、行われてきました。まず、選択をしないようにする方法。
ここではあなたがやるべきでないものです
ああ、私は使用(および乱用)非常に多くのiterrows()メソッドにされています。これは、デフォルトでは非常に遅いですが、私は選択肢(近視眼)を探すためにわざわざその理由を知っています。
データを横断する方法は、あなたがiterrows()を使うべきではないことを証明するために、ボックス、私は、迅速なデモを作ると思います - 変数を宣言し、最初に、各反復のValuesプロパティを押し0--の現在の値に設定されています刻み。
あなたが知りたい場合は、魔法%%時間関数は、すべての操作/ミリ秒を完了するために、細胞に必要な秒数を返します。
機能が実行されるかを見てください:
你现在可能会想,用15秒遍历100000行并递增一些外部变量的值并不算多。但事实上是——请看下一部分的阐述原因。
以下是你应该做的事
现在有一个神奇的方法能进行挽救——itertuples()。顾名思义,itertuples()循环遍历数据框的行,然后返回一个命名元组。这就是不能用括号[]访问这些值,而是需要使用.符号的原因。
现在将演示与几分钟前相同的示例,但使用的是itertuples()方法:
瞧瞧!使用itertuples()进行同样的运算,速度快了约154倍!现在想象一下你的日常工作场景,你正在处理上百万条行——itertuples()可以帮你节省大量时间。
来源:Pexels
在这个简单的例子中,我们已经见识到对代码进行的小小改动就能对整体结果产生的巨大影响。
这不意味itertuples()在每个场景下都会比iterrows()快150倍,但在某种程度上这确实意味着每次都会快一些。
感谢阅读,希望大家有所收获!
留言 点赞 关注
我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)