引数 | 設定 | デフォルト | 説明 |
---|---|---|---|
a | 必須 | - | 変形する前のNumpy配列を指定します。 |
newshape | 必須 | - | 変形させたい形状を指定します。 |
>>> x array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) # >>> np.reshape(x,(2,5)) array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) #配列サイズとnewshapeのサイズが一致しない場合 → エラー >>> np.reshape(x,(3,3)) Traceback (most recent call last): ・・・ ValueError: cannot reshape array of size 10 into shape (3,3)
引数 | 設定 | デフォルト | 説明 |
---|---|---|---|
a1, a2, … | 必須 | - | 結合するNumpy配列を指定します。 |
axis | 省略可 | 0 | 結合する軸を指定します(0=一次、1=二次)。 |
>>> a1 = np.array([1,2,3]) >>> a2 = np.array([4,5,6]) >>> a3 = np.array([7,8,9]) #3つの配列を結合する場合(リスト、タプルどちらでもOK) >>> np.concatenate([a1,a2,a3]) array([1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> np.concatenate((a1,a2,a3)) array([1, 2, 3, 4, 5, 6, 7, 8, 9]) #3つの配列を二次配列として結合する場合 #a1, a2, a3をそれぞれ二次配列[a1], [a2], [a3]の形にして行方向に結合する >>> np.concatenate([[a1],[a2],[a3]],axis=0) array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) #次のように指定すると一次配列として結合される。 >>> np.concatenate([[a1],[a2],[a3]],axis=1) array([[1, 2, 3, 4, 5, 6, 7, 8, 9]]) #異なる次元の配列を結合する場合は、次元を合わせる >>> np.concatenate([b1,[a3]]) array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) #次元を合わせないと... >>> np.concatenate([b1,a3]) Traceback (most recent call last): ・・・ ValueError: all the input arrays must have same number of dimensions, ・・・
引数 | 設定 | デフォルト | 説明 |
---|---|---|---|
tup | 必須 | - | 結合するNumpy配列をタプルで指定します。 |
>>> a1 = np.array([1,2,3]) >>> a2 = np.array([4,5,6]) >>> a3 = np.array([7,8,9]) #垂直方向に結合する場合 >>> np.vstack((a1,a2,a3)) array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) #水平方向に結合する場合 >>> np.hstack((a1,a2,a3)) array([1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> a3 = np.array([7,8,9]) >>> b1 array([[1, 2, 3], [4, 5, 6]]) #垂直方向に結合する場合 >>> np.vstack((b1,a3)) array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) #同じ配列にhstackを適用すると... >>> np.hstack((b1,a3)) Traceback (most recent call last): ・・・ ValueError: all the input arrays must have same number of dimensions, ・・・
引数 | 設定 | デフォルト | 説明 |
---|---|---|---|
a | 必須 | - | 分割するNumpy配列を指定します。 |
indices or sections | 必須 | - |
整数で指定する場合、分割個数を指定します。
等分割できない場合はエラーになります。 リストで指定する場合は、分割する位置を指定します(0から始まる)。 |
axis | 省略可 | 0 | 結合する軸を指定します(0=一次、1=二次)。 |
>>> z array([[ 0, 1, 2, 3, 4], [ 0, 10, 20, 30, 40], [ 0, 100, 200, 300, 400]]) #行方向で分解する場合 → 第二引数は整数で指定 >>> np.split(z,3) [array([[0, 1, 2, 3, 4]]), array([[ 0, 10, 20, 30, 40]]), array([[ 0, 100, 200, 300, 400]])] #列方向で分解する場合 >>> np.split(z,5,axis=1) [array([[0], [0], [0]]), array([[ 1], [ 10], [100]]), array([[ 2], [ 20], [200]]), array([[ 3], [ 30], [300]]), array([[ 4], [ 40], [400]])] #指定する位置で分割する場合 → 第二引数はリストで指定 #(1列目、2列目、3列目以降で列方向に分解) >>> np.split(z,[1,2,3],axis=1) [array([[0], [0], [0]]), array([[ 1], [ 10], [100]]), array([[ 2], [ 20], [200]]), array([[ 3, 4], [ 30, 40], [300, 400]])]
引数 | 設定 | デフォルト | 説明 |
---|---|---|---|
a | 必須 | - | 分割するNumpy配列を指定します。 |
indices or sections | 必須 | - |
整数で指定する場合、分割個数を指定します。
等分割できない場合はエラーになります。 リストで指定する場合は、分割する位置を指定します(0から始まる)。 |
>>> z array([[ 0, 1, 2, 3, 4], [ 0, 10, 20, 30, 40], [ 0, 100, 200, 300, 400]]) #行方向で分解する場合 → 第二引数は整数で指定 >>> np.vsplit(z,3) [array([[0, 1, 2, 3, 4]]), array([[ 0, 10, 20, 30, 40]]), array([[ 0, 100, 200, 300, 400]])]]