Python 学習:vectorize 関数

2014-05-07 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での、blogramのランクインカテゴリは、
3、2、1、1、2、 0、0、0、1、0(41)で、換算ポイント 61pt 。
「Firefox」今朝方、日替わりで5位にアップ。
・-・ - -・

さて、本文。

ほぼ1ヶ月前(2014-04-06)の記事:
Python 学習:配列型データ構造
で書いた、
配列オブジェクト
を見ていたら、
最後に、

  c) 配列操作 その2

  vectorize を使うと math.sin()に対するnumpy.sin() のように
  一つしか引数をとらない関数を元に、
  配列を引数に取る関数を作ることができる。

  ・・・・・
  ・・・・・

との解説があった。

早速試してみた。

import numpy as np

x = np.array([1, 2, 3, 4])
y = np.array([5, 7, 8, 9])
z = np.array([0, 0, 0, 0, 0, 0])

def m(i): global x,y,z; z[x[i]]=y[i]

# ------------------------------------ とした場合、

m(0) # を実行した結果の z は、 array([0, 5, 0, 0, 0, 0])

z[1]=0 # 元に戻しておいて、

mv = np.vectorize(m) # vectorize を適用する。

mv(range(4))

# の様に配列を引数にできて、 z は、
# array([0, 5, 7, 8, 9, 0]) と成る。



つまり、
  mv( (0,1,2,3) )
は、OKだが、
  m( (0,1,2,3) )
は、エラーになる。


本日はここまで。
更に Python 学習は続く。



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


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

コメントの投稿

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

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



おきてがみ

最新記事
カレンダー
07 | 2017/08 | 09
- - 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 31 - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

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

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


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

Google Analytics
ブックマーク