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の独占に警戒せよ。中国勢力が世界規模のゲームに参入

ブログ    
ブログ    

推薦する

...

ソフトウェア エンジニアのコーディング面接でよく聞かれるアルゴリズム トップ 10

あなたは、コンピューターサイエンスまたはソフトウェアエンジニアリングの学位を取得して大学を卒業したば...

AI技術年次報告:中国の2つの側面におけるパフォーマンスは注目に値する

スタンフォード大学は最近、「人工知能指数(2018年グローバルAIレポート)」を発表しました。これは...

スマートビルディングのためのビルディングオートメーションと IoT

[[350210]]今日、私たちが建物について語るとき、それは単なる外殻を意味するのではなく、さま...

アメリカは最強のAIを開発するために1億ドルを投資しています。あなたを狙っているわけではありませんが、ここにいる全員が職を失う可能性があります。

米企業が人工知能に1億ドルを投資人工知能といえば、誰もが知っているものでしょう。AppleファンのS...

...

量子コンピューティングと人工知能の関係は何ですか?

量子コンピューティングは、学術誌だけでなく、一般の新聞や雑誌でも頻繁に議論される、非常に人気の高いト...

NLP における新たなマイルストーン!清華大学ヤオクラスの卒業生がKEARをリリース:人間を超える初の常識質問応答システム

[[443046]]人間はAIよりも常識があるとは言えなくなりました!最近、マイクロソフトの黄雪東と...

DeepXplore: 現実世界のディープラーニングシステムを体系的にテストするための初のホワイトボックスフレームワーク

ヨアヴ・ホランダーマシンハートが編集参加者: ウー・パン、ヤン・チー5月に、コロンビア大学とリーハイ...

データ分析とAIのミスが原因の注目度の高い事件9件

2017年、『エコノミスト』誌は、石油ではなくデータが世界で最も価値のある資源になったと宣言しました...

スマート物流の1兆ドル規模の扉が開かれ、物流ロボットがトレンドの先端に立っている

近年、インターネットの急速な発展、電子商取引の加速的な台頭、さまざまな新しいビジネスモデルの急速な実...

...

Google DeepMindは、新しいAIモデルGeminiを開発中であることを明らかにし、「GPT-4よりも強力」であると主張している。

6月28日、先月のGoogle I/O開発者会議で、Googleは開発中の大規模言語モデル「Gem...

スマートホームが不動産市場の動向に与える影響

今日、多くの人がスマートホームが提供するものを活用したいと考えています。スマートホームは、快適で便利...

チャットボットについては長い間話されてきましたが、良いチャットボットとはどのように定義されるのでしょうか?

なぜ良いチャットボットがないのでしょうか? これは私がかなり頻繁に、おそらく平均して週に 2 回は聞...