空の配列と空でない配列を連結すると、空でない配列を含む1つの値の配列が生成されますが、浮動小数点数に変更されることがわかりました。例えば:
import numpy as np
np.concatenate([1], [1])
array([1, 1])
しかし
np.concatenate([], [1])
array([1.])
これは np.hstack と同じように機能します
空の配列と空でない配列を連結すると、空でない配列を含む1つの値の配列が生成されますが、浮動小数点数に変更されることがわかりました。例えば:
import numpy as np
np.concatenate([1], [1])
array([1, 1])
しかし
np.concatenate([], [1])
array([1.])
これは np.hstack と同じように機能します
デフォルトでは、コード内の空の配列
np.concatenate([], [1])
は で初期化されdtype=float
、concatenate は 2 番目のint
配列を にキャストしfloat
ます。
ここで、空の配列に対して concatenate を使用することがあるかどうかを尋ねる価値があります。明らかに、次のようなコードを書くことは決してありません
a=array([1,2,3])#int array
b=np.concatenate([], a)
これが発生する可能性がある 1 つのケース シナリオは次のとおりです。
a=array([1,2,3])#int array
b=concatenate((a[:j],a)) #usually j!=0 here
その後、何らかの理由でコードが で実行されj=0
ます。空であることは事実ですa[:0]
が、それでも保持dtype=int
され、予想どおり、連結の結果は整数の配列です。
はい、あなたの例は一見すると予期しない動作を示していますが、それはまったく無害です。