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

ブログ    
ブログ    

推薦する

最初にサンプルが多すぎますか? 5つのサンプリングアルゴリズムを数分で実行できます

データサイエンスはアルゴリズムの研究です。この記事では、データを処理するための一般的なサンプリング手...

人工知能とインテリジェント人工知能、AIの開発はデータサポートから切り離せない

AIは半世紀以上もの間、低調でしたが、囲碁の人工知能プログラム、AI茶室、AI+医療、AI+交通など...

...

賢くなる方法: 神経科学にヒントを得た人工知能

[[201067]]私はデイビッド・マーが「神経科学のチューリング」のような存在だといつも感じていま...

2020年職場のAIスキルランキング:TensorFlowが人気上昇、Pythonが最も人気、マーケティング部門も学習中

2020年まで残り1ヶ月となりました。最近、オンライン教育ウェブサイトのUdemyは、受講生のコース...

...

...

ドローンはどうやって夏の「蚊との戦い」に勝つのでしょうか?これら3つのポイントを達成する必要があります。

夏が来ると、人類の最大の敵の一つである蚊が活発になります。彼らは2~3匹で「家に侵入」し、「ブンブン...

需要が高まる最高AI責任者

出版社ファウンドリーの新しい調査によると、企業は生産性とイノベーションを高めるために人工知能に注目し...

...

ハイブリッドクラウド環境でディープラーニングを取り入れたID認証はより柔軟

[51CTO.com からのオリジナル記事] 入れ墨は、秦と漢の時代に広く使用されていた刑法の一種で...

AIが農業用水効率の課題をどう解決するか

[[388190]] • 食糧需要が増加するにつれて、世界は水の使用を管理する必要があります。 • ...

千年紀の文化遺産の碑文を解読するAIの能力は人間より30%高い

科学技術の継続的な進歩により、人工知能(AI)はあらゆる面で常に人間を超えつつあるようだ。例えば、1...

ヘルスケアにおける人工知能の応用

今年に入ってから、医療提供方法や患者がより積極的に医療に参加できる方法を変革するために AI を使用...