numpy作成array【老魚学numpy】

3240 ワード

前の記事では、numpyでnumpyの配列を作成する方法について説明しました.ここで繰り返します.
import numpy as np
#   
a = [[1, 2, 3], [4, 5, 6]]
print("a:", a)

#   
b = np.array(a)
print("b:", b)

実行後の出力:
a: [[1, 2, 3], [4, 5, 6]]
b: [[1 2 3]
 [4 5 6]]

pythonの配列とnumpyの配列が画面に出力される微細な違いを見ることができます.numpyの配列出力は行列に従って配列され、要素の後にカンマで区切られていないので、画面出力では行列を簡単に見ることができ、数学の行列の書式に近いです.
numpy配列を作成するときにdtypeを設定することで、配列内の要素のタイプを指定することもできます.たとえば、次のようにします.
import numpy as np
# python  
a = [[1, 2, 3], [4, 5, 6]]
print("a:", a)

# numpy  
b = np.array(a, dtype=np.float)
print("b:", b)

numpy配列要素のタイプをfloatタイプとして定義し、出力は次のとおりです.
a: [[1, 2, 3], [4, 5, 6]]
b: [[ 1.  2.  3.]
 [ 4.  5.  6.]]

機械学習では、一般的に我々が定義する要素タイプは浮動小数点タイプnpである.floatと整数np.int.
ぜん0ぎょうれつ
3行4列すべて0のnumpy 2次元配列を出力します.
import numpy as np
a = np.zeros((3,4))
print(a)

出力:
[[ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]]

ぜん1はいれつ
全1の配列もよく使用されます.
import numpy as np
a = np.ones((3, 4), dtype=np.float)
print(a)

出力:
[[ 1.  1.  1.  1.]
 [ 1.  1.  1.  1.]
 [ 1.  1.  1.  1.]]

例えば(3,4)pythonのメタグループタイプであり、本質的には配列であるが、配列とは異なる点では値が読み取り専用であり、メタグループの要素の値を変更できないことに気づくかもしれない.
0に近い配列を生成
import numpy as np
a = np.empty((3, 4), np.float)
print(a)

出力:
[[  6.23042070e-307   3.56043053e-307   1.37961641e-306   2.22518251e-306]
 [  1.33511969e-306   1.24610383e-306   1.69118108e-306   8.06632139e-308]
 [  1.20160711e-306   1.69119330e-306   1.29062229e-306   1.29060531e-306]]

np.Empty()は、0に近い乱数配列を生成するために使用される.
秩序化された数列または配列の生成
たとえば、10から20まで(終了値を除く)のステップ長が2の数列を生成します.
import numpy as np
a = np.arange(10, 20, 2)
print(a)

出力:
[10 12 14 16 18]

np.arang()はよく使われていますが、この関数を見てpythonのrange関数を連想させます.この2つの機能は似ています.まず例を見てみましょう.
import numpy as np
# python   range  ,         list       
a = range(10, 20, 2)
print("python  range  :", list(a))

# numpy  arange   python  range    
b = np.arange(10, 20, 2)
print("numpy  arange:", b)

出力:
python  range  : [10, 12, 14, 16, 18]
numpy  arange: [10 12 14 16 18]

ここでarangはarrayのrange関数として記憶できる.
配列の形状を変更する
numpy配列の形状は非常に重要であり,すなわち数行数列である.配列/行列演算を行うには、配列/行列がどのような形状であるかに常に注目しなければならない.例えば、配列/行列の加算、配列/行列のフォーク乗算には、その形状に相応する厳格な規定がある.配列/行列の形状を変えるためにnpを呼び出す必要がある場合がある.reshape()の関数です.例:
import numpy as np
a = np.arange(12).reshape(3, 4)
print(a)

出力:
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

線分の生成
import numpy as np
a = np.linspace(1, 10, 20)
print(a)

出力:
[  1.           1.47368421   1.94736842   2.42105263   2.89473684
   3.36842105   3.84210526   4.31578947   4.78947368   5.26315789
   5.73684211   6.21052632   6.68421053   7.15789474   7.63157895
   8.10526316   8.57894737   9.05263158   9.52631579  10.        ]

上記の文は、1から10までの合計20個の等間隔の数列を生成します.開始は1、終了は10で、合計20の等距離点があると想像できます.