numpy の軸と次元

不言
リリース: 2018-04-18 11:01:28
オリジナル
4363 人が閲覧しました

次の記事は、numpy の軸と次元についての理解を共有するものであり、良い参考値となっており、皆様のお役に立てれば幸いです。一緒に見てみましょう

NumPy の主なオブジェクトは、すべて同じ型の要素 (通常は数値) のテーブルであり、NumPy では次元は軸と呼ばれます。たとえば、3D 空間 [1, 2, 1] の点の座標は、軸が 1 つあるため、ランク 1 の配列になります。その軸の長さは 3 です。図の例では、以下では、配列のランクは 2 (2 次元です)、最初の次元 (軸) の長さは 2、2 番目の次元の長さは 3 です。

python

の世界では、軸の数をrank

[[ 1., 0., 0.],
 [ 0., 1., 2.]]
ログイン後にコピー

shape関数と呼び、その関数はnumpy.core.fromnumericを読み込むことです。行列の長さ、たとえば、shape[0] は、行列の最初の次元の長さを読み取ります。

shape(x)(2,3,4)

shape(x)[0]

2 または

x.shape[0]

2

各平面の構成を個別に見てみましょう:

>> X = np.reshape(np.arange(24), (2, 3, 4))
  # 也即 2 行 3 列的 4 个平面(plane)
>> X
array([[[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]],
    [[12, 13, 14, 15],
    [16, 17, 18, 19],
    [20, 21, 22, 23]]])
ログイン後にコピー

つまり、 np.arange(24)(0, 1, 2, 3, ..., 23) は re です。 - 多次元配列の複数の軸の方向を配置する場合、最後の軸が最初に割り当てられます(2次元配列の場合は行の方向が最初に割り当てられ、3次元配列の場合は行の方向が最初に割り当てられます)。

reshpae、配列の形状を変更するために使用される配列オブジェクト内のメソッドです。

2次元配列

>> X[:, :, 0]
array([[ 0, 4, 8],
    [12, 16, 20]])
>> X[:, :, 1]
array([[ 1, 5, 9],
    [13, 17, 21]])
>> X[:, :, 2]
array([[ 2, 6, 10],
    [14, 18, 22]])
>> X[:, :, 3]
array([[ 3, 7, 11],
    [15, 19, 23]])
ログイン後にコピー

3次元配列

#!/usr/bin/env python 
# coding=utf-8 
import numpy as np 
 
a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) 
print a 
d=a.reshape((2,4)) 
print d
ログイン後にコピー

原理配列要素の形状変更などはできません。配列要素が変更されているため、このように記述するのは間違いです。

#!/usr/bin/env python 
# coding=utf-8 
import numpy as np 
 
a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) 
print a 
f=a.reshape((2, 2, 2)) 
print f
ログイン後にコピー

注: reshape によって生成された新しい配列と元の配列は同じメモリを共有します。つまり、一方の配列の要素が変更されると、もう一方の配列も変更されます。

#!/usr/bin/env python 
# coding=utf-8 
import numpy as np 
 
a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) 
print a 
print a.dtype 
e=a.reshape((2,2)) 
print e
ログイン後にコピー

Pythonにおけるreshape関数のパラメータ-1の意味

#!/usr/bin/env python 
# coding=utf-8 
import numpy as np 
 
a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) 
print a 
e=a.reshape((2, 4)) 
print e 
a[1]=100 
print a 
print e
ログイン後にコピー

a.reshape(1,1)と書くとエラーが報告されます

ValueError: サイズ 6 の配列を形状 (1,1) に再形成することはできません

a=np.arange(0, 60, 10)
>>>a
array([0,10,20,30,40,50])
>>>a.reshape(-1,1)
array([[0],
[10],
[20],
[30],
[40],
[50]])
ログイン後にコピー

-1 は、どの数値を埋めるかを計算するのが面倒であることを意味します。これは Python によって推測されます。 aおよびその他の値3.

>>> a = np.array([[1,2,3], [4,5,6]])
>>> np.reshape(a, (3,-1)) # the unspecified value is inferred to be 2
array([[1, 2],
    [3, 4],
    [5, 6]])
ログイン後にコピー

関連する推奨事項:

numpy の array と asarray の違い


以上がnumpy の軸と次元の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート