python numpy 配列の結合

配列の結合 
concatenate([配列1、配列2],axis=軸)#(1次元目を増やす)
block([配列1、配列2])#(2次元目を増やす)
stack([配列1、配列2],axis=0) #次元を増やして結合
軸を決めて結合(vstack hstack dstack) がある

以下を実行すればそれぞれどのように機能するかわかると思います。

実行結果も下につけます。

import numpy as np

arr_1 = np.array([[0, 1], [2, 3]])
arr_2 = np.array([[4, 5], [6, 7]])
arr_sum=arr_1+arr_2
print(arr_1)
print(arr_2)
print(arr_sum)

arr_con = np.concatenate([arr_1, arr_2]) #(np.vstack([a1,a2])と同
print(arr_con)

arr_con = np.concatenate([arr_1, arr_2],axis=1) #(np.hstack([a1,a2])と同
print(arr_con)

arr_stack = np.stack([arr_1, arr_2],axis=1) #3次元配列 #(np.dstack([a1,a2])と同
print(arr_stack)

print("これをblock関数で書くと以下のようになる")
arr_1dim = np.block([arr_1, arr_2])
arr_2dim = np.block([[arr_1], [arr_2]])
arr_0dim = np.block([[[arr_1]], [[arr_2]]])

print(arr_1dim)
print(arr_2dim)
print(arr_0dim)

実行結果

元の2×2行列
[[0 1]
 [2 3]]
[[4 5]
 [6 7]]
普通に足した場合
[[ 4  6]
 [ 8 10]]
以下、今回覚えた計算の結果
[[0 1]
 [2 3]
 [4 5]
 [6 7]]
[[0 1 4 5]
 [2 3 6 7]]
[[[0 1]
  [4 5]]

 [[2 3]
  [6 7]]]
これをblock関数で書くと以下のようになる
[[0 1 4 5]
 [2 3 6 7]]
[[0 1]
 [2 3]
 [4 5]
 [6 7]]
[[[0 1]
  [2 3]]

 [[4 5]
  [6 7]]]

Python[完全]入門 [ 松浦健一郎 ]

価格:3190円
(2024/1/7 21:31時点)
感想(1件)



コメント

タイトルとURLをコピーしました