Wu Sinan の機械学習への旅: Numpy で多次元配列を作成する

Wu Sinan の機械学習への旅: Numpy で多次元配列を作成する

[[188605]]

Numpy は Python 科学計算のコアライブラリの 1 つであり、主に多次元配列を強力にサポートします。

多次元配列とは何ですか?

コア オブジェクトは、同じデータ型を持つ同じタイプの多次元配列 (通常は数値を含むテーブルとして単純に理解されます) です。

コンセプト:

1. 軸: 配列の次元は総称して軸と呼ばれます。

2. ランク: 軸の数をランクと呼びます。

たとえば、1次元配列 [1,2,1] は、軸が 1 つ (次元が 1 つ) しかないため、ランク 1 の配列です。次の図は、ランク 2 (2 次元) 配列を示しています。最初の軸 (次元) の長さは、赤い線の枠で示されているように 2 です。2 番目の軸 (次元) の長さは、青い線の枠で示されているように 3 です。これは、データ構造で言われていることと少し似ています。配列の要素自体も配列型になることができます。

Numpy の多次元配列: ndarray

Numpy の配列クラス numpy.array は、主に Python の配列クラス array.array と区別するために、一般的に ndarray と呼ばれます。以下の記事では、特に指定がない限り、array および ndarray は numpy.array を指します。

ndarray (numpy.array) の主な属性:

  • ndim: 配列の軸(次元)の数
  • 形状: Python タプル型。各数値は各軸 (次元) の配列の長さを表します。
  • サイズ: 多次元配列の要素の総数(シェイプタプル内のすべての値の積に等しい)
  • dtype: 多次元配列内の要素の型。多次元配列のすべての要素は同じ型である

ここで短い間奏を紹介します。

Anaconda は Python ベースのデータ サイエンス プラットフォームであり、データ分析によく使用されるライブラリとツールをパッケージ化したソフトウェアに相当します。それは私たちが学習を始めるのに良い助けになります。ダウンロードアドレス: https://www.continuum.io/anaconda-overview。

インストール後、「IPython」、「Jupyter QtConsole」、または「Spyder」を開きます。これらは本質的には IPython インタラクティブ環境のラッパーです。

演習: ndarray を作成します。

パラメータが Python リストまたはタプル (シーケンス型) である numpy.array() メソッドを直接使用します。以下のコードでは、「In」は入力したコード、「Out」は前の行のコードの出力です。すべてのコード行に出力があるわけではありません。

コード:

次の図は、上記のコードを「Spyder」で実行した場合の効果を示しています。

上図の変数エクスプローラーで ndarray をダブルクリックすると、2 次元配列が表示されます。

ndarrayを作成する他の方法

1. ゼロ、1、空のメソッド

  • numpy.ゼロ
  • numpy.ones
  • numpy.空

NumPy は、ndarray をすばやく作成するための別の方法を提供します。これは、配列の内容が不明な状況に特に適しており、配列の拡大によるオーバーヘッドも回避します。

2. アレンジ法

arange は均等に分散された ndarray (numpy.array) を返すことができます。開始(オプション)、終了(必須)、間隔(オプション)を個別に設定できます。次の例は、この方法の使用方法を明確に示しています。

3. 再形成法

名前が示すように、このメソッドは既存の ndarray を別の形状 (形状、つまり配列の各軸の長さ) の多次元配列に変換します。新しい配列には元のデータがすべて含まれます。

注意: 新しい図形は同じサイズを維持する必要があります。簡単に言うと、最初の図形のパラメータ 3x4=12 は、2 番目の図形のパラメータ 2x6=12 と常に一致している必要があります。

4. ランダム法

新しい配列の内容をランダムな数字で埋めます。 Numpy でデータ配列を生成する方法は複数あり、混乱を招く可能性があります。現在、乱数生成には大きく分けて2つの種類があります。1つは「一様分布」(確率論における「0-1連続分布」など)に従って生成されるもので、もう1つは「正規分布」に従って生成されるものです。

numpy では、random、ranf、sample というメソッドがあります。実際、これらはすべて次のようになります。

numpy.random.random_sample メソッドのエイリアス。どちらも「均一分布」に基づいて乱数を生成します。次のコードはこれを検証します。

最も一般的に使用されるものを以下に詳しく紹介します。

numpy.ランダム.ランダム

API: http://t.im/1b9sw

これは、半開区間 [0.0, 1.0) 内のランダムな浮動小数点数を返し、1 つのパラメータのみを取ります。

size : int または int タプル。返される配列の形状としても使用されます。入力が (2,3,5) の場合、最初に 2x3x5=30 個の乱数が抽出され、次に (2,3,5) の形状を持つ多次元配列が戻り値として形成されます。引数が指定されていない場合は、乱数が直接返されます。

演習: 区間[12, 30)に6x3配列を生成する。

コード:

さて、これでNumPyの第一回目の講義は終了です。この後も実際に使ってみて紹介する内容がまだまだたくさんあります。

[この記事は51CTOコラムニスト「ウー・シナン」によるオリジナル記事です。転載の許可を得るには51CTOを通じて著者に連絡してください]

この著者の他の記事を読むにはここをクリックしてください

<<:  人工知能技術情報の無料共有

>>:  AI業界におけるGoogleの独占に警戒せよ。中国勢力が世界規模のゲームに参入

ブログ    
ブログ    

推薦する

マスク氏はAIが人間を超えると述べ、それを信じない人は単に賢いだけだと語る

北京時間7月23日、テスラのCEOイーロン・マスク氏は水曜日、人工知能(AI)の将来についての懸念を...

...

Megvii Technologyがロボット協調ネットワーク頭脳「Hetu」をリリース、エコシステムの改善に20億元を投資

現在、モノのインターネットの将来の発展方向は非常に明確であり、それが AIoT です。 AIは頭脳で...

魚眼カメラと超音波センサーの融合により、鳥瞰図による近距離障害物認識を実現

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

BAIRは、3種類のモデルフリー強化学習アルゴリズムを組み合わせたRLコードライブラリrlpytをオープンソース化しました。

最近、BAIR は強化学習研究コードライブラリ rlpyt をオープンソース化しました。このライブラ...

AI画像認識は無関係? Google AI: 段階的なトレーニング セットで画像の説明精度を向上

絵を千語で説明できるとしたら、絵の中に描写できる詳細や物体間の関係性は実に多くあります。犬の毛の質感...

[ディープラーニングシリーズ] PaddlePaddle 手書き数字認識

先週、ディープラーニングの分散操作モードに関する情報を検索していたところ、偶然 PaddlePadd...

中国はビッグデータ、人工知能、遺伝子技術などに関する知的財産法制の整備を加速させる。

中国共産党中央委員会と国務院がこのほど発表した「知的財産強国建設要綱(2021~2035年)」では、...

将来の量子コンピューティング攻撃の脅威に対処するため、我が国は新たなデータ保護暗号アルゴリズムの研究を開始しました。

量子コンピューティングの継続的な進歩により、コンピュータ能力の大幅な向上がネットワーク セキュリティ...

映画業界におけるAI:将来はアカデミー賞の背後にAIが立つ

[[258542]]最近終了した2019年のアカデミー賞授賞式では、最優秀脚本賞や最優秀視覚効果賞を...

...

アラスカ航空は人工知能を活用して時間、燃料、費用を節約

[[405121]] 【51CTO.com クイック翻訳】企業の AI プロジェクトの失敗率が 85...