修正方法: すべての入力配列は同じ次元数でなければなりません
NumPy の使用時に発生する可能性のあるエラーは次のとおりです。
ValueError : all the input arrays must have same number of dimensions
このエラーは、次元が異なる 2 つの NumPy 配列を連結しようとすると発生します。
次の例は、このエラーを実際に修正する方法を示しています。
エラーを再現する方法
次の 2 つの NumPy 配列があるとします。
import numpy as np #create first array array1 = np. array ([[1, 2], [3, 4], [5,6], [7,8]]) print (array1) [[1 2] [3 4] [5 6] [7 8]] #create second array array2 = np. array ([9,10,11,12]) print (array2) [9 10 11 12]
ここで、 concatenate()関数を使用して 2 つの配列を 1 つの配列に結合しようとするとします。
#attempt to concatenate the two arrays
n.p. concatenate ([array1, array2])
ValueError : all the input arrays must have same number of dimensions, but the array at
index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)
2 つの配列の次元が異なるため、 ValueError が返されます。
エラーを修正する方法
このエラーを修正するには 2 つの方法を使用できます。
方法 1: np.column_stack を使用する
エラーを回避しながら 2 つのテーブルを連結する 1 つの方法は、次のようにcolumn_stack()関数を使用することです。
n.p. column_stack ((array1, array2))
array([[ 1, 2, 9],
[3, 4, 10],
[5, 6, 11],
[7, 8, 12]])
エラーなしで 2 つの配列を正常に連結できることに注意してください。
方法 2: np.c_ を使用する
次のようにnp.c_関数を使用して、エラーを回避しながら 2 つのテーブルを連結することもできます。
n.p. c_ [array1, array2]
array([[ 1, 2, 9],
[3, 4, 10],
[5, 6, 11],
[7, 8, 12]])
この関数は前のメソッドとまったく同じ結果を返すことに注意してください。
追加リソース
次のチュートリアルでは、Python の他の一般的なエラーを修正する方法を説明します。
パンダの KeyError を修正する方法
修正方法: ValueError: float NaN を int に変換できません
修正方法: ValueError: オペランドをシェイプでブロードキャストできませんでした