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 が電子商取引におけるウェブサイト アクセシビリティ訴訟のリスクを最小限に抑える方法

進化する人工知能により、電子商取引分野におけるウェブサイトのアクセシビリティ訴訟のリスクを最小限に抑...

自動運転車に「道路を認識」させる方法

人間が歩くのと同じように、自動運転車も移動プロセスを完了するためには、交通環境について自主的に考え、...

4 つの C# ソート アルゴリズムのコード例

C# のソート アルゴリズムには通常、ループと割り当てが含まれます。ソートにより、簡単な統計と分類を...

人工知能は優れたサイバーセキュリティツールだが、諸刃の剣でもある

[[245793]]セキュリティにおける AI の役割は、ホワイトハットハッカーとサイバー犯罪者の両...

...

この記事では人工知能とは何かを徹底的に解説します!

人工知能 (AI) は、自然科学のさまざまな分野を網羅しており、主に特定の種類の知的な人間の活動をモ...

クォンタムAIパーク、リアルタイム翻訳、Googleが革新的なAI製品を展示

[[434605]] Googleは11日、「発明家」をテーマにしたイベントを開催し、AI技術をベー...

マインクラフトがAIの街に変身、NPC住民が本物の人間のようにロールプレイ

この立方体の男が、目の前にいる「招かれざる客」の正体について素早く考えている様子を、注意深く見てくだ...

ディープラーニングに新たな落とし穴が!シドニー大学は、テキストを使用して画像のマット化をガイドする新しいクロスモーダルタスクを提案しています

画像マッティングとは、画像内の正確な前景を抽出することを指します。現在の自動方法では、画像内のすべて...

...

PyTorch エクスペリエンス ガイド: ヒントと落とし穴

PyTorch の開発者は、PyTorch の哲学は即時のタスクを解決すること、つまり計算グラフをそ...

これは人工ニューラルネットワークの非常に簡単な説明です

[[419321]]導入私は機械学習についてはよく知りませんが、先月、GitHub で Go のサン...

米国NHTSAの新規制:レベル2以上の自動運転に関わる事故は報告が必要

米国道路交通安全局(NHTSA)は、SAEレベル2の先進運転支援システム(ADAS)またはSAEレベ...

ロボットに仕事を奪われるのではないかと心配ですか?教師、弁護士、物理学者は「最も安全な職業」に含まれる

北京時間4月16日、外国メディアの報道によると、ロボットが人間の仕事を代替するというのはSF映画のス...