Numpy 100 の基本演習を書いた後のエラーのまとめと文法のまとめ

序文: 学習のためにビデオを見ているため、この 100 のトピックの記述には、ビデオに表示されていない文法が多数あります. ただし、多くの文法は、直接使用するのが比較的簡単であり、ループの少ない文が多くあります. これまでのところ、このエラーの要約と文法の要約を書きました。ブロガーが雷を踏むのを手伝ってくれたので、友達に少しでも助けになれば幸いです。!

        1、大きさ10のヌルベクトルを作る(★☆☆)')

                サイズ 10 の空のベクトルを作成します。

この問題には 4 つの解決策があります。使用される構文は次のとおりです。

① np.empty はサイズ shape の初期化されていない配列を構築します ②np.zeros はサイズ
がすべて 0 の配列を
構築します ③np.ones はサイズ shape のすべてが 1 の配列を構築します ④np.full はサイズ shape の配列を構築
します 指定された値で埋めます full 配列

print(np.empty(10))
print(np.ones(10))
print(np.zeros(10))
print(np.full((2,5),5.0))

 

注意する必要があるのは、np.full 構文を入力し、np.empty を使用して shape のサイズの初期化されていない配列を構築した後、構築された関数がまだ完全なステートメントで作成されたコンテンツであることがわかるということです。ので、作成を終了する必要があります。

 

          2、0から8までの範囲の値で3x3のマトリックスを作成します(★☆☆)')

                0 ~ 8 の 9 つの数字で 3x3 行列を作成します

この問題には 2 つの解決策があります。使用される構文は次のとおりです。

np.arange().reshape(3,3)

np.arange().reshape((3,-1))

x3=np.arange(0,9).reshape(3,3)
print(x3)

sample3 = np.arange(9).reshape((3, -1))
print(sample3)

 最初に 2 番目の構文を見たとき、私はそれが非常に奇妙だと思いました. 私は -1 についてよく知りませんでした. reshape の性質を簡単に紹介しましょう:

reshape 関数は、narray のデータ構造に対して次元変換を実行することです. 変換はオブジェクト要素の定数数に従うため、変換中は、データ オブジェクト narray の要素の総数が N であると仮定されます。 (m、-1)の次元、オブジェクトが2次元行列に変換され、行列の1次元のサイズがm、2次元のサイズがN / mであることがわかります

したがって、(3, -1) の場合も満足です!

        3、[1,2,0,0,4,0] から非ゼロ要素のインデックスを見つける (★☆☆)')

                配列 [1,2,0,0,4,0] から非ゼロ要素の添字を見つけます

この問題には 2 つの解決策があります。使用される構文は次のとおりです。

①ループ入れ子文の利用

②自分の文法をそのまま使う

x3=np.array([1,2,0,0,4,0])
print(x3)
for i in range(len(x3)):
    if x3[i]!=0:
        print(i)
        
print(np.nonzero([1,2,0,0,4,0]))

 

ここで私は大きな間違いを犯しました。慣性思考を使用して、ループのネストされたステートメントを使用してゼロ以外の要素を見つけました。numpy に付属する構文を直接呼び出すだけです。! ! 皆さんが私と同じ低レベルの間違いをしないことを願っています! ! !

        4、3x3の恒等行列を作る(★☆☆)')

                3x3 の対角行列を作成する

この問題には 3 つの解決策があります。使用される構文は次のとおりです。

①np.identity

②np.eye

③np.diag

##“对角矩阵(diagonal matrix)是一个主对角线之外的元素皆为0的矩阵


# identity 只能创建方阵,eye要灵活一些,可以创建NxM的矩阵,也可以控制对角线的位置

print(np.identity(3))
print('-----------------------------------')
print(np.eye(3,3,0)) #默认第一个和第二个参数相等,第三个参数为对角线位置
np.diag([1,1,1])

 大学院入試が久しぶりで、対角行列が何なのか忘れて大学院入試が終わった!! また、簡単な自己紹介を以下に示します。

対角行列は、主対角の外側の要素がすべて 0である行列、多くの場合、diag(a1, a2,...,an) と記述されます。対角行列は最も単純な種類の行列と見なすことができます.対角要素は 0 またはその他の値になる可能性があることに注意してください. 対角要素が等しい対角行列は量行列と呼ばれます. すべてが 1 の対角行列は恒等行列と呼ばれます。対角行列の演算には、同じ次数の対角行列に対する和、差、乗算、および積演算が含まれ、結果は依然として対角行列です。

  アイデンティティは正方行列のみを作成でき、目はより柔軟で、NxM 行列を作成でき、対角線の位置も制御できます

したがって、ブロガーの提案は、目の関数をもっと使用して、マトリックスを柔軟に作成する必要があるということです! !

        5、ランダムな値で3x3x3の配列を作る(★☆☆)')

                乱数で 3x3x3 行列を作成する

x4=np.random.random((3,3,3))
x4

注意する必要があるのは、random 関数を直接使用してさまざまな型を呼び出すことができることです。

X=np.random.randint((3,3,3))
X

 最初は、double random で作成された浮動小数点数があまりきれいに見えなかったので、random.randint を使用して整数の配列を作成したいと考えていたところ、1 次元配列が作成されていることがわかりました。今回は整数配列を作成したいのですが、ceil関数とfloor関数を使って切り上げと切り捨てができます!!

おすすめ

転載: blog.csdn.net/qq_46044325/article/details/126734780