簡単な質問:これらの各方法の利点は何ですか?適切なパラメータ(とndarrayの形状)が与えられているように見えるのは、すべて同じように見えます。いくつかの場所で動作しますか?より良いパフォーマンスを備えていますか?どの関数を使うべきですか?hstack/vstack vs append vs concatenate vs column_stack
答えて
あなたはこれらの機能のコードにアクセスできますか?すべては、np.concatenate
を除き、Pythonで書かれています。 IPythonシェルの場合は、??
を使用します。
ない場合は、ここではそのコードのまとめです:つまり
vstack
concatenate([atleast_2d(_m) for _m in tup], 0)
i.e. turn all imputs in to 2d (or more) and concatenate on first
hstack
concatenate([atleast_1d(_m) for _m in tup], axis=<0 or 1>)
colstack
transform arrays with (if needed)
array(arr, copy=False, subok=True, ndmin=2).T
append
concatenate((asarray(arr), values), axis=axis)
、これらすべての作業の入力配列の大きさを微調整した後、右軸に連結することによって。それらは単なる便利な関数です。
IPythonでは、関数のソースコードの後に、その名前の後に??
と入力すると、関数のソースコードを見ることができます。 hstack
を見てみると、私たちはそれが実際に(同様にvstack
とcolumn_stack
付き)concatenate
単なるラッパーだと見ることができます。
np.hstack??
def hstack(tup):
...
arrs = [atleast_1d(_m) for _m in tup]
# As a special case, dimension 0 of 1-dimensional arrays is "horizontal"
if arrs[0].ndim == 1:
return _nx.concatenate(arrs, 0)
else:
return _nx.concatenate(arrs, 1)
だから私はちょうどあなたに最も論理的な響きの名前を持っている方のいずれかを使用と思います。
numpy.vstack:垂直に配列スタックアレイ(行ごとの).Equivalent np.concatenate(tup, axis=0)
例に参照:https://docs.scipy.org/doc/numpy/reference/generated/numpy.vstack.html
numpy.hstack:配列スタックアレイ水平(列方向).Equivalent np.concatenate(tup, axis=1)
に。例: https://docs.scipy.org/doc/numpy/reference/generated/numpy.hstack.html
appendは、Pythonの組み込みデータ構造list
の関数です。リストに要素を追加するたびに。明らかに、複数の要素を追加するには、extend
を使用します。簡単に言えば、numpyの機能ははるかに強力です。
例:
はものと想定gray.shape =(N0、N1)
np.vstack((gray,gray,gray))
は(N0 * 3、N1)形状を持つことになり、あなたもnp.concantenate((gray,gray,gray),axis=0)
np.hstack((gray,gray,gray))
でそれを行うことができますがあります形状(n0、n1 * 3)の場合は、np.concantenate((gray,gray,gray),axis=1)
np.dstack((gray,gray,gray))
の形状(n0、n1,3)になります。
- 1. Pandas DataFrame concat vs append
- 2. C++ std :: string append vs push_back()
- 3. jquery html()vs empty()。append()performance
- 4. _mm_load_ps vs. _mm_load_pd vs.
- 5. Quartz.NET vs JAMS vs?
- 6. NetSqlAzMan vs AzMan vs(?????)
- 7. 場所vs GeoPoint vs 1E6 vs課金
- 8. Application.Exit()vs Application.ExitThread()vs Environment.Exit()
- 9. getBBox()vs getClientRects()vs getClientRects()
- 10. tcsh:ls vs pwd vs cd
- 11. xprofile vs xsession vs xinitrc
- 12. インターポレーターvsアニメーションvsトランジション
- 13. クライアントアプリvs Windowsサービスvs?
- 14. Express.js:app.locals vs req.locals vs req.session
- 15. Zabbix vs grafana vs kibana
- 16. アクティブソリューションプラットフォームVSプロジェクトプラットフォームVSプラットフォームターゲット
- 17. DIP vs. DI vs. IoC
- 18. flume vs kafka vs他
- 19. 特性vs.ミックスインvs.
- 20. java.lang.Void vs void vs Null
- 21. RegAsm VS RegSvc32 VS GAC
- 22. select vs distinct vs uniq?
- 23. GCC:mtune vs march vs mcpu
- 24. サブクラスvsエクステンションvsインナークラス
- 25. NSImage vs. CIImage vs. CGImage?
- 26. MySQL vs Firebird vs SQLite
- 27. Image vs BitmapImage vs Bitmap
- 28. ZeroMQ vs Twisted vs Autobahn
- 29. TextColor vs TextColorPrimary vs TextColorSecondary
- 30. XAML vs WPF vs Store App vs Phone App vs UWA
"これらの機能のコードにアクセスできますか?" - numpyは[オープンソース](https://github.com/numpy/numpy)です。 – Annan