Python 学習:配列型データ構造

2014-04-06 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での、blogramのランクインカテゴリは、
3、2、1、1、1、 1、0、0、0、1(39)で、換算ポイント 60pt 。
特段のランク変動は無し?
・-・ - -・

さて、本文。

Python における“データの型”について、
特に“配列型”について整理。

Python入門から応用までの学習サイト
では、
データの型については、
「タプル」「リスト」「ディクショナリ」
とかに分かれていて、イマイチ???

Python 2.7ja1 ドキュメント
も厳密すぎて、眠くなる()?


「Python 配列」で検索してみた。

1番目にヒットしたのは、
リスト - Python入門 - PythonWeb
  Pythonの組み込み型の一つであるリストについて確認します。
  リストはシーケンス型の1つです。
  他のプログラミング言語における配列に似たものです。
  ・・・・・

そして、
2番目は、
配列オブジェクト
  実験データの処理を行う上で基本となるのは
  配列(Numpy.ndarray)オブジェクトです。

  配列のようなデータを扱うオブジェクトとして Python では
  リスト(list)というクラスを提供しています。

  リストは配列長が可変でリストの中に様々なオブジェクトを入れることができ、
  また配列長が可変である等、非常に柔軟な構造となっています。

  ・・・・・

  一方 ndarrayクラスは一つの配列中のオブジェクトは異なる型のオブジェクトを
  混在させることができません。
  しかしながら、その分メモリ効率や実行効率が良いものとなっており、
  実験データのような巨大な配列を取り扱う必要がある場合には
  積極的に使用する必要があります。

  ・・・・・

そうなんだ。

Python 言語仕様で規定されているのは、「リスト(list)」。
例えば、
   x = [ 1, 2, 3 ]
とすると、
  type(x) は、'list'
となる。

一方、「アレイ(array)」
  inport numpy
 x = numpy.array( [ 1, 2, 3 ] )
とすると、
  type(x) は、'numpy.ndarray'
となる。

そして、
リストでは、
  x = [ 1, 'abc', 3.0 ]
の様な定義も出来るが、
アレイでは、・・・
  x = numpy.array( [ 1, 'abc', 3.0 ] )
とすると、
  type(x) は、'numpy.ndarray'
となって、一見定義出来たようにみえるが、
実は、
  x = array(['1','abc','3.0'], dtype='|S3')
となっている!!!


配列オブジェクト
の、
  a) 基本操作
には、
  ndarray オブジェクトは list と同様の操作が可能です。

などとある。


それから、2次元以上になると、・・・・・
本家のマニュアル:
NumPy User Guide - NumPy v1.8 Manual
に依ると、

  x = np.array( [ 1, 2, 3, 4, 5, 6 ] )
とすると、
  x.shape は、( 6L, )
となり、

  y = x.reshape( 2, 3 )
とすると、
  y は、array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] )
となる。

逆に、
  w = y.flat[0:6]
とすると、
  w は、array( [ 1, 2, 3, 4, 5, 6 ] )
になる。

解説は、
 w = y.flatten()
  ndarray.flatten( order='C' )
  Return a copy of the array collapsed into one dimension.
  Parameters
   order : { 'C', 'F', 'A' }, optional
   Whether to flatten in C (row-major), Fortran (column-major) order,
   or preserve the C/Fortran ordering from a. The default is 'C'.
  Returns
   w : ndarray
   A copy of the input array, flattened to one dimension.
ですか。

  w = y.flat
だけではダメ?
  w[0:6]と、
添字付けが必要!


こんなもんで良いのかな???


更なる、Python の学習です。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


140222
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク