なぜnumpyはhstackよりもconcatenteを好むことをお勧めしますか?documentation?なぜnumpyドキュメントはhstackよりもconcatenteを好むことをお勧めしますか?
しかし、np.concatenateまたはnp.stackを使用することをおすすめします。
this answerによると、hstackは連結のラッパーです。その場合、なぜコードの可読性を向上させるhstackを使用しないのですか?
なぜnumpyはhstackよりもconcatenteを好むことをお勧めしますか?documentation?なぜnumpyドキュメントはhstackよりもconcatenteを好むことをお勧めしますか?
しかし、np.concatenateまたはnp.stackを使用することをおすすめします。
this answerによると、hstackは連結のラッパーです。その場合、なぜコードの可読性を向上させるhstackを使用しないのですか?
のでhstack
の実際のコードは次のとおりです。
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)
それは最初の引数をループし、それぞれ少なくとも1Dであることを確認します。これにより、0dとスカラー要素が処理されます(np.hstack([0,1,np.arange(3)])
など)。
残りの部分は、1つの軸と唯一の軸または2つ目の軸を連結するかどうかを選択します。
vstack
は少なくとも2dのものを作り、1番目のものを連結する以外は似ています。
SOの質問/回答から判断すると、これらはまだかなり使用されています。ほとんどの場合、問題は発生しません。ほとんどの問題を引き起こすのはnp.append
です。それは私が彼らが決して追加したくないものです。
hstack
とvstack
の主な問題は、ディメンションとシェイプについての怠惰な考えを奨励していることです。質問が発生するのは、ポスターが同じ次元数を持つことが何であるかを理解していないか、または(1つの軸を除いて)形状が等しくなければならないからです。
コールスタックのフレームが1つ少なくなりますか? – wim
両方を理解しようとすると、「可読性」とパフォーマンスについてはあまり気にしないでしょうか? – Divakar
2以外の配列次元では、セマンティクスがより明確になるためです。 – user2357112