使用Pythonの変形及び実施例の三次元アレイに二次元配列の複数

今日は皆、3次元配列のインスタンスにPythonのリシェイプ使用量と複数の2次元配列を共有する良い基準値を持っているため、小さな、我々は手助けをしたいです。是非、ご覧ください、小さな直列一緒に従うことを
リシェイプ(形状):配列要素を変更しない、そのまま元の配列の形状形状の配列を返します。これは、各行の要素のために処理されます

リサイズ(形状):()関数は.reshapeと一致しているが、元の配列を変更します

In [1]: a = np.arange(20)
#原数组不变
In [2]: a.reshape([4,5])
Out[2]:
array([[ 0, 1, 2, 3, 4],
  [ 5, 6, 7, 8, 9],
  [10, 11, 12, 13, 14],
  [15, 16, 17, 18, 19]])
  
In [3]: a
Out[3]:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19])
  
#修改原数组
In [4]: a.resize([4,5])
  
In [5]: a
Out[5]:
array([[ 0, 1, 2, 3, 4],
  [ 5, 6, 7, 8, 9],
  [10, 11, 12, 13, 14],
  [15, 16, 17, 18, 19]])

.swapaxes(AX1、AX2):n次元の配列は元の配列を変更することなく、二次元を入れ替えます

In [6]: a.swapaxes(1,0)
Out[6]:
array([[ 0, 5, 10, 15],
  [ 1, 6, 11, 16],
  [ 2, 7, 12, 17],
  [ 3, 8, 13, 18],
  [ 4, 9, 14, 19]])

)(.flatten:アレイの寸法を減少させる、一次元アレイは、元に戻り、同じ配列の後に折り畳まれます

 [7]: a.flatten()
Out[7]:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19])

三次元アレイに二次元配列の複数

この方法の一つ:

直接np.array行列の同じ寸法の2つ(またはそれ以上)のための()寸法を偽装拡張の数に役割を果たすことができる配列を再構成します。例えば:

import numpy as np
  
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[2,2,3],[4,5,6]])
c = np.array([[3,2,3],[4,5,6]])
print('矩阵a:\n',a)
print('维数:',a.shape)
  
com = np.array([a,b,c])
print('合并矩阵:\n',com)
print('维数:',com.shape)
  
输出结果为:
  
矩阵a:
 [[1 2 3]
 [4 5 6]]
维数: (2, 3)
合并矩阵:
 [[[1 2 3]
 [4 5 6]]
  
 [[2 2 3]
 [4 5 6]]
  
 [[3 2 3]
 [4 5 6]]]
维数: (3, 2, 3)

方法2:

しかし、2つの配列であれば、次のような結果が表示される瞬間を使用します。

import numpy as np
  
aa = np.array([[[1,2,3],[4,5,6]],[[2,2,3],[4,5,6]],[[3,2,3],[4,5,6]]])
a = np.array([[4,2,3],[4,5,6]])
  
com = np.array([aa,a])
print('合并矩阵:\n',com)
print('维数:',com.shape)
  
输出结果:
  
合并矩阵:
 [array([[[1, 2, 3],
  [4, 5, 6]],
  
  [[2, 2, 3],
  [4, 5, 6]],
  
  [[3, 2, 3],
  [4, 5, 6]]])
 array([[4, 2, 3],
  [4, 5, 6]])]
维数: (2,)

見ることができます:出力は、上記の方法が適用されない、寸法的に正しくないです。

そこで、我々はnp.appendを使用して、配列のスプライシングの再編成後に()関数をarray.reshape、具体的には以下を達成するためにする必要があります。

import numpy as np
  
aa = np.array([[[1,2,3],[4,5,6]],[[2,2,3],[4,5,6]],[[3,2,3],[4,5,6]]])
a = np.array([[4,2,3],[4,5,6]])
data = np.append(aa,a)#先拼接成一个行向量
print(data)
  
dim = aa.shape#获取原矩阵的维数
print('原矩阵维数:',dim)
data1 = data.reshape(dim[0]+1,dim[1],dim[2])#再通过原矩阵的维数重新组合
  
print('合并矩阵:\n',data1)
print('维数:',data1.shape)

今、3次元データの分布を再構築するために昇進した2次元データの使用を見てみましょう。

import numpy as np
b = np.arange(36).reshape((6,6))
b1 = b.reshape(2,3,6)

Bの要素:
ここに画像を挿入説明
B1要素は:ここに画像を挿入説明
参照、6元の行列6は、二つ3に分割されているマトリックス6。データ配信の各行は、ディメンションとして指定最初の3行は、その後、最後の3行は、別の次元として指定され、変化しません。

b1.reshape(6,6)

このコマンドを使用する場合、データはBと同じ、バック復元されました。

b1.reshape(3,12)

ここに画像を挿入説明
変形(3,12)は、第一ストレッチに対応するデータは、1次元である場合、一次元データは、12 * 3に再編します

方法3:

前の二つの方法に比べて、この方法は、モデルの「Quxianjiuguo」として記述することができ、具体的なアイデアは:最初のリストは、変換されたバックステッチに変換されます。

()関数のアペンドリストは、ディメンションを追加するための時間の関数の元のリストを変更できないためです。ないこのアプローチのスピードテストが、直感的に時間の複雑さの高価な、推奨注意けれども。

aa = np.array([[[1,2,3],[4,5,6]],[[2,2,3],[4,5,6]],[[3,2,3],[4,5,6]]])
a = np.array([[4,2,3],[4,5,6]])
  
#将array转换成list
aa = aa.tolist(aa)
a = a.list(a)
  
aa.append(a)#注意与方法二中np.append()用法的区别
com = np.array(aa)
print(com.shape)
  
输出结果:
  
合并矩阵:
  [[[1 2 3]
  [4 5 6]]
  
  [[2 2 3]
  [4 5 6]]
  
  [[3 2 3]
  [4 5 6]]
   
  [[4 2 3]
  [4, 5, 6]]]
维数: (4,2,3)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
AA = np.array([[[1,2,3]、[4,5,6] 、[[2,2,3-]、[4,5,6]、[3,2,3]、[4,5,6]]])
、A = np.array([4,2、 3]、[4,5,6]])

アレイは、#リストに変換される
AA = aa.tolist(AA)
A = a.list(A)

第二のアプローチnp.append()使用区別とaa.append()#注その
COM = np.array(AA)
プリント(com.shape)

出力:

合わせた行列
: [[[123]
[456]

[2 2 3]
[4 5 6]

[3 2 3]
[4 5 6]

[423]
[4,5,6]]]
外形寸法:(4,2,3)
なお、ここで:

変換関数のどちらのタイプ:

アレイ转リスト:A = a.tolist()

リスト転送配列:A = np.array()
公的機関の数で良い評判をお勧めするどのように多くの、そして最終的にはより多くのコンテンツ[プログラマ]、学習古いタイマーがたくさんあります

スキルは、経験、面接スキル、職場体験や他のシェアを学んで、より慎重に、実際のプロジェクトのゼロベースの入門情報、情報を準備しました

毎日、Pythonプログラマは、学習と細部に注意を払う必要がありますする方法のいくつかを共有するために、技術のタイミングを説明します!
ここに画像を挿入説明

公開された64元の記事 ウォン称賛13 ビュー50000 +

おすすめ

転載: blog.csdn.net/chengxun02/article/details/105151314