• 検索結果がありません。

情報とコンピュータ

N/A
N/A
Protected

Academic year: 2021

シェア "情報とコンピュータ"

Copied!
83
0
0

読み込み中.... (全文を見る)

全文

(1)

情報とコンピュータ

http://www.cs.miyazaki-u.ac.jp/~date/lectures/2013ic/

伊達 章

宮崎大学 工学部 情報システム工学科

2014

1

23

1 / 83

(2)

情報とコンピュータ

担当教員: 伊達 章,

A-333 [email protected]

成績の評価方法: レポート

わけがわからない事,多すぎ!

かもしれないが,とにかく,さわって理解する

2 / 83

(3)

講義のスケジュール(案)

10/31

プログラミング環境の整備・インストール

Python, PyCharm,NumPy, SciPy, matplotlib 11/7

確率と情報

コンピュータで乱数を発生させてシミュレーション

1/16

パターン情報処理(音,画像,言語)

http://www.cs.miyazaki-u.ac.jp/~date/lectures/2013ic/comments20140116.html

1/23

パターン情報処理(音,画像,言語)

1/30

脳の仕組み:脳とコンピュータ

Deep Learning

提出課題に対する回答

3 / 83

(4)

パターン情報処理: 画像

画像を表示する.

「画像は数字の羅列」を確認

画像データを加工する

顔認識,文字認識: なぜ区別できる?

顔認識技術の現在

4 / 83

(5)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0> In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

5 / 83

(6)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0> In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

6 / 83

(7)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0> In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

7 / 83

(8)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0> In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

8 / 83

(9)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0> In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

9 / 83

(10)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0> In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

10 / 83

(11)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649)

In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0> In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

11 / 83

(12)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0> In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

12 / 83

(13)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0> In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

13 / 83

(14)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0> In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

14 / 83

(15)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0> In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

15 / 83

(16)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0>

In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

16 / 83

(17)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0>

In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

17 / 83

(18)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0>

In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1] Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

18 / 83

(19)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0>

In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

19 / 83

(20)

「画像は数字の羅列」を確認

$ ipython

In [1]:from PIL import Image

In [2]:im = Image.open(’ics001.jpg’) #

ファイル名

In [3]:im.show() #

表示

In [4]:x = im.size #

画像の大きさは?

In [5]:x

Out[5]:(800, 649) In [6]:x[0]

Out[6]:800 # 1

個目の要素だけ取り出す

In [7]:p = im.getdata() #

画素データを取り出す

In [8]:p

Out[8]:<ImagingCore at 0xb72d75a0>

In [9]:p[3]

Out[9]:(34, 81, 159) #

3

画素の

RGB

成分(のはず)

In [10]:p[3][1]

Out[10]:81

PIL(Python Imaging Library)がインストールされていない

場合は

...

ちょっと待っててください

20 / 83

(21)

画素値(

0

255

B.Olshausen & D.Field, American Scientist, 2000

21 / 83

(22)

im. + tab

キーで

...

$ ipython

In [1]:im.

im.app im.getpalette im.putdata

im.applist im.getpixel im.putpalette

im.bits im.getprojection im.putpixel

im.category im.histogram im.quantization

im.convert im.huffman_ac im.quantize

im.copy im.huffman_dc im.readonly

im.crop im.icclist im.resize

im.decoderconfig im.im im.rotate

im.decodermaxblock im.info im.save

im.draft im.layer im.seek

im.filename im.layers im.show

im.filter im.load im.size

im.format im.load_djpeg im.split

im.format_description im.load_end im.tell

im.fp im.load_prepare im.thumbnail

im.fromstring im.map im.tile

im.getbands im.mode im.tobitmap

im.getbbox im.offset im.tostring

im.getcolors im.palette im.transform

im.getdata im.paste im.transpose

im.getextrema im.point im.verify

im.getim im.putalpha

22 / 83

(23)

im. + tab

キーで

...

$ ipython In [1]:im.

im.app im.getpalette im.putdata

im.applist im.getpixel im.putpalette

im.bits im.getprojection im.putpixel

im.category im.histogram im.quantization

im.convert im.huffman_ac im.quantize

im.copy im.huffman_dc im.readonly

im.crop im.icclist im.resize

im.decoderconfig im.im im.rotate

im.decodermaxblock im.info im.save

im.draft im.layer im.seek

im.filename im.layers im.show

im.filter im.load im.size

im.format im.load_djpeg im.split

im.format_description im.load_end im.tell

im.fp im.load_prepare im.thumbnail

im.fromstring im.map im.tile

im.getbands im.mode im.tobitmap

im.getbbox im.offset im.tostring

im.getcolors im.palette im.transform

im.getdata im.paste im.transpose

im.getextrema im.point im.verify

im.getim im.putalpha

23 / 83

(24)

p. + tab

キーで

...

$ ipython

In [1]:p.

p.chop_add p.effect_spread p.pixel_access

p.chop_add_modulo p.expand p.point

p.chop_and p.fillband p.point_transform

p.chop_darker p.filter p.putband

p.chop_difference p.gaussian_blur p.putdata

p.chop_invert p.getband p.putpalette

p.chop_lighter p.getbbox p.putpalettealpha p.chop_multiply p.getcolors p.putpixel

p.chop_or p.getextrema p.quantize

p.chop_screen p.getpalette p.rankfilter

p.chop_subtract p.getpixel p.resize

p.chop_subtract_modulo p.getprojection p.rotate

p.chop_xor p.histogram p.save_ppm

p.convert p.isblock p.setmode

p.convert2 p.modefilter p.stretch

p.convert_matrix p.new_array p.transform2

p.copy p.new_block p.transpose

p.copy2 p.offset p.unsharp_mask

p.crop p.paste

24 / 83

(25)

p. + tab

キーで

...

$ ipython In [1]:p.

p.chop_add p.effect_spread p.pixel_access

p.chop_add_modulo p.expand p.point

p.chop_and p.fillband p.point_transform

p.chop_darker p.filter p.putband

p.chop_difference p.gaussian_blur p.putdata

p.chop_invert p.getband p.putpalette

p.chop_lighter p.getbbox p.putpalettealpha p.chop_multiply p.getcolors p.putpixel

p.chop_or p.getextrema p.quantize

p.chop_screen p.getpalette p.rankfilter

p.chop_subtract p.getpixel p.resize

p.chop_subtract_modulo p.getprojection p.rotate

p.chop_xor p.histogram p.save_ppm

p.convert p.isblock p.setmode

p.convert2 p.modefilter p.stretch

p.convert_matrix p.new_array p.transform2

p.copy p.new_block p.transpose

p.copy2 p.offset p.unsharp_mask

p.crop p.paste

25 / 83

(26)

001 grayscale image.py

1 # -* - c o d i n g : utf -8 -* - 2 i m p o r t I m a g e

3

4 def g r a y s c a l e ( im ) : 5 x , y = im . s i z e

6 for col in r a n g e ( y ) : 7 for raw in r a n g e ( x ) :

8 r , g , b = im . g e t p i x e l (( raw , col ) ) 9 m = int ( r * 0 . 3 0 + g * 0 . 5 9 + b * 0 . 1 1 ) 10 im . p u t p i x e l (( raw , col ) , ( m , m , m ) ) 11 r e t u r n

12

13 if _ _ n a m e _ _ == ’ _ _ m a i n _ _ ’:

14 im = I m a g e . o p e n ( " i c s 0 0 1 . jpg " ) 15 im = im . c o n v e r t ( " RGB ")

16 g r a y s c a l e ( im )

17 im . s a v e ( " i c s 0 0 1 g r a y . jpg " ) 18 im . s h o w ()

26 / 83

(27)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape

Out[6]:(649, 800, 3) In [7]:type(im) Out[7]:numpy.ndarray In [8]:im.dtype

Out[8]:dtype(’uint8’)

27 / 83

(28)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape

Out[6]:(649, 800, 3) In [7]:type(im) Out[7]:numpy.ndarray In [8]:im.dtype

Out[8]:dtype(’uint8’)

28 / 83

(29)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape

Out[6]:(649, 800, 3) In [7]:type(im) Out[7]:numpy.ndarray In [8]:im.dtype

Out[8]:dtype(’uint8’)

29 / 83

(30)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape

Out[6]:(649, 800, 3) In [7]:type(im) Out[7]:numpy.ndarray In [8]:im.dtype

Out[8]:dtype(’uint8’)

30 / 83

(31)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape

Out[6]:(649, 800, 3) In [7]:type(im) Out[7]:numpy.ndarray In [8]:im.dtype

Out[8]:dtype(’uint8’)

31 / 83

(32)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape Out[6]:(649, 800, 3) In [7]:type(im) Out[7]:numpy.ndarray In [8]:im.dtype

Out[8]:dtype(’uint8’)

32 / 83

(33)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape

Out[6]:(649, 800, 3) In [7]:type(im) Out[7]:numpy.ndarray In [8]:im.dtype

Out[8]:dtype(’uint8’)

33 / 83

(34)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape

Out[6]:(649, 800, 3)

In [7]:type(im) Out[7]:numpy.ndarray In [8]:im.dtype

Out[8]:dtype(’uint8’)

34 / 83

(35)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape

Out[6]:(649, 800, 3) In [7]:type(im)

Out[7]:numpy.ndarray In [8]:im.dtype

Out[8]:dtype(’uint8’)

35 / 83

(36)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape

Out[6]:(649, 800, 3) In [7]:type(im) Out[7]:numpy.ndarray

In [8]:im.dtype

Out[8]:dtype(’uint8’)

36 / 83

(37)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape

Out[6]:(649, 800, 3) In [7]:type(im) Out[7]:numpy.ndarray In [8]:im.dtype

Out[8]:dtype(’uint8’)

37 / 83

(38)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:from scipy import misc #

準備

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’) #

ファイルの指定

In [4]:plt.imshow(im)

In [5]:plt.show() #

画面に表示

In [6]:im.shape

Out[6]:(649, 800, 3) In [7]:type(im) Out[7]:numpy.ndarray In [8]:im.dtype

Out[8]:dtype(’uint8’)

38 / 83

(39)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:im

Out[1]:array([[[ 36, 30, 68], [56, 68, 126], [41, 77, 155],..., In [2]:im[300:350:1, 400:450:1,::]=255 #

ある領域だけ白く

# im[300:350:1, 400:450:1,::]=[123,245,82] #

緑化

# im[300:310] = 255 # im[300:310:1, ::, ::]

と同じ

# im[300:310:1, 0:800:1, 0:3:1]

と同じ

# im[300:350:1, 400:450:1, 0:3:1] = 255

を試す

In [3]:plt.imshow(im) In [4]:plt.show()

In [5]:im[330:350] = [100,123,211] In [6]:plt.imshow(im)

In [7]:plt.show()

39 / 83

(40)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im

Out[1]:array([[[ 36, 30, 68], [56, 68, 126], [41, 77, 155],..., In [2]:im[300:350:1, 400:450:1,::]=255 #

ある領域だけ白く

# im[300:350:1, 400:450:1,::]=[123,245,82] #

緑化

# im[300:310] = 255 # im[300:310:1, ::, ::]

と同じ

# im[300:310:1, 0:800:1, 0:3:1]

と同じ

# im[300:350:1, 400:450:1, 0:3:1] = 255

を試す

In [3]:plt.imshow(im) In [4]:plt.show()

In [5]:im[330:350] = [100,123,211] In [6]:plt.imshow(im)

In [7]:plt.show()

40 / 83

(41)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im

Out[1]:array([[[ 36, 30, 68], [56, 68, 126], [41, 77, 155],...,

In [2]:im[300:350:1, 400:450:1,::]=255 #

ある領域だけ白く

# im[300:350:1, 400:450:1,::]=[123,245,82] #

緑化

# im[300:310] = 255 # im[300:310:1, ::, ::]

と同じ

# im[300:310:1, 0:800:1, 0:3:1]

と同じ

# im[300:350:1, 400:450:1, 0:3:1] = 255

を試す

In [3]:plt.imshow(im) In [4]:plt.show()

In [5]:im[330:350] = [100,123,211] In [6]:plt.imshow(im)

In [7]:plt.show()

41 / 83

(42)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im

Out[1]:array([[[ 36, 30, 68], [56, 68, 126], [41, 77, 155],..., In [2]:im[300:350:1, 400:450:1,::]=255 #

ある領域だけ白く

# im[300:350:1, 400:450:1,::]=[123,245,82] #

緑化

# im[300:310] = 255 # im[300:310:1, ::, ::]

と同じ

# im[300:310:1, 0:800:1, 0:3:1]

と同じ

# im[300:350:1, 400:450:1, 0:3:1] = 255

を試す

In [3]:plt.imshow(im) In [4]:plt.show()

In [5]:im[330:350] = [100,123,211] In [6]:plt.imshow(im)

In [7]:plt.show()

42 / 83

(43)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im

Out[1]:array([[[ 36, 30, 68], [56, 68, 126], [41, 77, 155],..., In [2]:im[300:350:1, 400:450:1,::]=255 #

ある領域だけ白く

# im[300:350:1, 400:450:1,::]=[123,245,82] #

緑化

# im[300:310] = 255 # im[300:310:1, ::, ::]

と同じ

# im[300:310:1, 0:800:1, 0:3:1]

と同じ

# im[300:350:1, 400:450:1, 0:3:1] = 255

を試す

In [3]:plt.imshow(im)

In [4]:plt.show()

In [5]:im[330:350] = [100,123,211] In [6]:plt.imshow(im)

In [7]:plt.show()

43 / 83

(44)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im

Out[1]:array([[[ 36, 30, 68], [56, 68, 126], [41, 77, 155],..., In [2]:im[300:350:1, 400:450:1,::]=255 #

ある領域だけ白く

# im[300:350:1, 400:450:1,::]=[123,245,82] #

緑化

# im[300:310] = 255 # im[300:310:1, ::, ::]

と同じ

# im[300:310:1, 0:800:1, 0:3:1]

と同じ

# im[300:350:1, 400:450:1, 0:3:1] = 255

を試す

In [3]:plt.imshow(im) In [4]:plt.show()

In [5]:im[330:350] = [100,123,211] In [6]:plt.imshow(im)

In [7]:plt.show()

44 / 83

(45)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im

Out[1]:array([[[ 36, 30, 68], [56, 68, 126], [41, 77, 155],..., In [2]:im[300:350:1, 400:450:1,::]=255 #

ある領域だけ白く

# im[300:350:1, 400:450:1,::]=[123,245,82] #

緑化

# im[300:310] = 255 # im[300:310:1, ::, ::]

と同じ

# im[300:310:1, 0:800:1, 0:3:1]

と同じ

# im[300:350:1, 400:450:1, 0:3:1] = 255

を試す

In [3]:plt.imshow(im) In [4]:plt.show()

In [5]:im[330:350] = [100,123,211]

In [6]:plt.imshow(im) In [7]:plt.show()

45 / 83

(46)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im

Out[1]:array([[[ 36, 30, 68], [56, 68, 126], [41, 77, 155],..., In [2]:im[300:350:1, 400:450:1,::]=255 #

ある領域だけ白く

# im[300:350:1, 400:450:1,::]=[123,245,82] #

緑化

# im[300:310] = 255 # im[300:310:1, ::, ::]

と同じ

# im[300:310:1, 0:800:1, 0:3:1]

と同じ

# im[300:350:1, 400:450:1, 0:3:1] = 255

を試す

In [3]:plt.imshow(im) In [4]:plt.show()

In [5]:im[330:350] = [100,123,211]

In [6]:plt.imshow(im)

In [7]:plt.show()

46 / 83

(47)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im

Out[1]:array([[[ 36, 30, 68], [56, 68, 126], [41, 77, 155],..., In [2]:im[300:350:1, 400:450:1,::]=255 #

ある領域だけ白く

# im[300:350:1, 400:450:1,::]=[123,245,82] #

緑化

# im[300:310] = 255 # im[300:310:1, ::, ::]

と同じ

# im[300:310:1, 0:800:1, 0:3:1]

と同じ

# im[300:350:1, 400:450:1, 0:3:1] = 255

を試す

In [3]:plt.imshow(im) In [4]:plt.show()

In [5]:im[330:350] = [100,123,211]

In [6]:plt.imshow(im) In [7]:plt.show()

47 / 83

(48)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython

In [1]:im[0]

Out[1]:array([[ 36, 30, 68],....

In [2]:im[0][0]

Out[2]:array([36, 30, 68], dtype=uint8) In [3]:im[0][0][0]

Out[3]:36

In [4]:im.shape[0] Out[4]:649 #

縦方向

48 / 83

(49)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im[0]

Out[1]:array([[ 36, 30, 68],....

In [2]:im[0][0]

Out[2]:array([36, 30, 68], dtype=uint8) In [3]:im[0][0][0]

Out[3]:36

In [4]:im.shape[0] Out[4]:649 #

縦方向

49 / 83

(50)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im[0]

Out[1]:array([[ 36, 30, 68],....

In [2]:im[0][0]

Out[2]:array([36, 30, 68], dtype=uint8) In [3]:im[0][0][0]

Out[3]:36

In [4]:im.shape[0] Out[4]:649 #

縦方向

50 / 83

(51)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im[0]

Out[1]:array([[ 36, 30, 68],....

In [2]:im[0][0]

Out[2]:array([36, 30, 68], dtype=uint8) In [3]:im[0][0][0]

Out[3]:36

In [4]:im.shape[0] Out[4]:649 #

縦方向

51 / 83

(52)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im[0]

Out[1]:array([[ 36, 30, 68],....

In [2]:im[0][0]

Out[2]:array([36, 30, 68], dtype=uint8)

In [3]:im[0][0][0] Out[3]:36

In [4]:im.shape[0] Out[4]:649 #

縦方向

52 / 83

(53)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im[0]

Out[1]:array([[ 36, 30, 68],....

In [2]:im[0][0]

Out[2]:array([36, 30, 68], dtype=uint8) In [3]:im[0][0][0]

Out[3]:36

In [4]:im.shape[0] Out[4]:649 #

縦方向

53 / 83

(54)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im[0]

Out[1]:array([[ 36, 30, 68],....

In [2]:im[0][0]

Out[2]:array([36, 30, 68], dtype=uint8) In [3]:im[0][0][0]

Out[3]:36

In [4]:im.shape[0] Out[4]:649 #

縦方向

54 / 83

(55)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im[0]

Out[1]:array([[ 36, 30, 68],....

In [2]:im[0][0]

Out[2]:array([36, 30, 68], dtype=uint8) In [3]:im[0][0][0]

Out[3]:36

In [4]:im.shape[0]

Out[4]:649 #

縦方向

55 / 83

(56)

「画像は数字の羅列」を確認

scipy, matplotlib

だけ使用

$ ipython In [1]:im[0]

Out[1]:array([[ 36, 30, 68],....

In [2]:im[0][0]

Out[2]:array([36, 30, 68], dtype=uint8) In [3]:im[0][0][0]

Out[3]:36

In [4]:im.shape[0]

Out[4]:649 #

縦方向

56 / 83

(57)

im. + tab

キーで

...

$ ipython

In [1]:im.

im.T im.cumsum im.min im.shape

im.all im.data im.nbytes im.size

im.any im.diagonal im.ndim im.sort

im.argmax im.dot im.newbyteorder im.squeeze

im.argmin im.dtype im.nonzero im.std

im.argpartition im.dump im.partition im.strides

im.argsort im.dumps im.prod im.sum

im.astype im.fill im.ptp im.swapaxes

im.base im.flags im.put im.take

im.byteswap im.flat im.ravel im.tofile

im.choose im.flatten im.real im.tolist

im.clip im.getfield im.repeat im.tostring im.compress im.imag im.reshape im.trace

im.conj im.item im.resize im.transpose

im.conjugate im.itemset im.round im.var im.copy im.itemsize im.searchsorted im.view

im.ctypes im.max im.setfield

im.cumprod im.mean im.setflags

57 / 83

(58)

im. + tab

キーで

...

$ ipython In [1]:im.

im.T im.cumsum im.min im.shape

im.all im.data im.nbytes im.size

im.any im.diagonal im.ndim im.sort

im.argmax im.dot im.newbyteorder im.squeeze

im.argmin im.dtype im.nonzero im.std

im.argpartition im.dump im.partition im.strides

im.argsort im.dumps im.prod im.sum

im.astype im.fill im.ptp im.swapaxes

im.base im.flags im.put im.take

im.byteswap im.flat im.ravel im.tofile

im.choose im.flatten im.real im.tolist

im.clip im.getfield im.repeat im.tostring im.compress im.imag im.reshape im.trace

im.conj im.item im.resize im.transpose

im.conjugate im.itemset im.round im.var im.copy im.itemsize im.searchsorted im.view

im.ctypes im.max im.setfield

im.cumprod im.mean im.setflags

58 / 83

(59)

002 grayscale image.py

1 # -* - c o d i n g : utf -8 -* - 2 f r o m s c i p y i m p o r t m i s c

3 i m p o r t m a t p l o t l i b . p y p l o t as plt 4

5 def g r a y s c a l e ( im ) : 6 n = im . s h a p e

7 for col in r a n g e ( n [ 0 ] ) : 8 for raw in r a n g e ( n [ 1 ] ) :

9 r , g , b = im [ col ][ raw ]

10 m = int ( r * 0 . 3 0 + g * 0 . 5 9 + b * 0 . 1 1 )

11 im [ col ][ raw ] = m # =[ m , m , m ]

と同じ

12 r e t u r n 13

14 if _ _ n a m e _ _ == ’ _ _ m a i n _ _ ’:

15 im = m i s c . i m r e a d ( ’ i c s 0 0 1 . jpg ’ ) 16 g r a y s c a l e ( im )

17 m i s c . i m s a v e ( " i c s 0 0 1 g r a y . jpg " , im ) 18 plt . i m s h o w ( im )

19 plt . s h o w ()

59 / 83

(60)

002f grayscale image.py

1 # -* - c o d i n g : utf -8 -* - 2 f r o m s c i p y i m p o r t m i s c

3 i m p o r t m a t p l o t l i b . p y p l o t as plt 4

5 def g r a y s c a l e ( im ) :

6 tmp = im [ : , : , : 1 ] * 0 . 3 0 + im [ : , : , 1 : 2 ] * 0 . 5 9 + im [ : , : , 2 : 3 ] * 0 . 1 1

7 im [: ,: ,:3] = tmp [: ,: ,:1]

8

9 r e t u r n 10

11 if _ _ n a m e _ _ == ’ _ _ m a i n _ _ ’:

12 im = m i s c . i m r e a d ( ’ i c s 0 0 1 . jpg ’ ) 13 g r a y s c a l e ( im )

14 m i s c . i m s a v e ( " i c s 0 0 1 g r a y . jpg " , im ) 15 plt . i m s h o w ( im )

16 plt . s h o w ()

速い!

60 / 83

(61)

「画像」のグレースケール化

まとめ

$ ipython

In [1]:from scipy import misc

In [2]:import matplotlib.pyplot as plt In [3]:im = misc.imread(’ics001.jpg’)

In [4]: tmp=im[:,:,:1]*0.30+im[:,:,1:2]*0.59+im[:,:,2:3]*0.11 In [5]:im[:,:,:3] = tmp[:,:,:1]

In [6]:plt.imshow(im)

Out[6]:<matplotlib.image.AxesImage at 0x9589c6c> In [7]:plt.show()

61 / 83

(62)

「画像」のグレースケール化

まとめ

$ ipython

In [1]:from scipy import misc

In [2]:import matplotlib.pyplot as plt In [3]:im = misc.imread(’ics001.jpg’)

In [4]: tmp=im[:,:,:1]*0.30+im[:,:,1:2]*0.59+im[:,:,2:3]*0.11 In [5]:im[:,:,:3] = tmp[:,:,:1]

In [6]:plt.imshow(im)

Out[6]:<matplotlib.image.AxesImage at 0x9589c6c> In [7]:plt.show()

62 / 83

(63)

「画像」のグレースケール化

まとめ

$ ipython

In [1]:from scipy import misc

In [2]:import matplotlib.pyplot as plt

In [3]:im = misc.imread(’ics001.jpg’)

In [4]: tmp=im[:,:,:1]*0.30+im[:,:,1:2]*0.59+im[:,:,2:3]*0.11 In [5]:im[:,:,:3] = tmp[:,:,:1]

In [6]:plt.imshow(im)

Out[6]:<matplotlib.image.AxesImage at 0x9589c6c> In [7]:plt.show()

63 / 83

(64)

「画像」のグレースケール化

まとめ

$ ipython

In [1]:from scipy import misc

In [2]:import matplotlib.pyplot as plt In [3]:im = misc.imread(’ics001.jpg’)

In [4]: tmp=im[:,:,:1]*0.30+im[:,:,1:2]*0.59+im[:,:,2:3]*0.11 In [5]:im[:,:,:3] = tmp[:,:,:1]

In [6]:plt.imshow(im)

Out[6]:<matplotlib.image.AxesImage at 0x9589c6c> In [7]:plt.show()

64 / 83

(65)

「画像」のグレースケール化

まとめ

$ ipython

In [1]:from scipy import misc

In [2]:import matplotlib.pyplot as plt In [3]:im = misc.imread(’ics001.jpg’)

In [4]: tmp=im[:,:,:1]*0.30+im[:,:,1:2]*0.59+im[:,:,2:3]*0.11

In [5]:im[:,:,:3] = tmp[:,:,:1]

In [6]:plt.imshow(im)

Out[6]:<matplotlib.image.AxesImage at 0x9589c6c> In [7]:plt.show()

65 / 83

(66)

「画像」のグレースケール化

まとめ

$ ipython

In [1]:from scipy import misc

In [2]:import matplotlib.pyplot as plt In [3]:im = misc.imread(’ics001.jpg’)

In [4]: tmp=im[:,:,:1]*0.30+im[:,:,1:2]*0.59+im[:,:,2:3]*0.11 In [5]:im[:,:,:3] = tmp[:,:,:1]

In [6]:plt.imshow(im)

Out[6]:<matplotlib.image.AxesImage at 0x9589c6c> In [7]:plt.show()

66 / 83

(67)

「画像」のグレースケール化

まとめ

$ ipython

In [1]:from scipy import misc

In [2]:import matplotlib.pyplot as plt In [3]:im = misc.imread(’ics001.jpg’)

In [4]: tmp=im[:,:,:1]*0.30+im[:,:,1:2]*0.59+im[:,:,2:3]*0.11 In [5]:im[:,:,:3] = tmp[:,:,:1]

In [6]:plt.imshow(im)

Out[6]:<matplotlib.image.AxesImage at 0x9589c6c> In [7]:plt.show()

67 / 83

(68)

「画像」のグレースケール化

まとめ

$ ipython

In [1]:from scipy import misc

In [2]:import matplotlib.pyplot as plt In [3]:im = misc.imread(’ics001.jpg’)

In [4]: tmp=im[:,:,:1]*0.30+im[:,:,1:2]*0.59+im[:,:,2:3]*0.11 In [5]:im[:,:,:3] = tmp[:,:,:1]

In [6]:plt.imshow(im)

Out[6]:<matplotlib.image.AxesImage at 0x9589c6c>

In [7]:plt.show()

68 / 83

(69)

「画像」のグレースケール化

まとめ

$ ipython

In [1]:from scipy import misc

In [2]:import matplotlib.pyplot as plt In [3]:im = misc.imread(’ics001.jpg’)

In [4]: tmp=im[:,:,:1]*0.30+im[:,:,1:2]*0.59+im[:,:,2:3]*0.11 In [5]:im[:,:,:3] = tmp[:,:,:1]

In [6]:plt.imshow(im)

Out[6]:<matplotlib.image.AxesImage at 0x9589c6c>

In [7]:plt.show()

69 / 83

(70)

python

のスライス操作

$ ipython

In [1]:from numpy import * In [2]:A = array ([1 , 2, 3]) In [3]:A = array(range(24))

In [4]:A = A.reshape(8,3) #

長方形

In [5]:A = A.reshape(4,2,3) #

直方体をイメージ!

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]], [[12, 13, 14],

[15, 16, 17]], [[18, 19, 20],

[21, 22, 23]]])

In [6]:A[0:2] # A[0:2:1,0:2:1,0:4:1]

と同じ

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]]])

いろいろ試して確認する.(最初)

:

(最後−1)

:

Δ

70 / 83

(71)

python

のスライス操作

$ ipython

In [1]:from numpy import *

In [2]:A = array ([1 , 2, 3]) In [3]:A = array(range(24))

In [4]:A = A.reshape(8,3) #

長方形

In [5]:A = A.reshape(4,2,3) #

直方体をイメージ!

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]], [[12, 13, 14],

[15, 16, 17]], [[18, 19, 20],

[21, 22, 23]]])

In [6]:A[0:2] # A[0:2:1,0:2:1,0:4:1]

と同じ

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]]])

いろいろ試して確認する.(最初)

:

(最後−1)

:

Δ

71 / 83

(72)

python

のスライス操作

$ ipython

In [1]:from numpy import * In [2]:A = array ([1 , 2, 3])

In [3]:A = array(range(24))

In [4]:A = A.reshape(8,3) #

長方形

In [5]:A = A.reshape(4,2,3) #

直方体をイメージ!

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]], [[12, 13, 14],

[15, 16, 17]], [[18, 19, 20],

[21, 22, 23]]])

In [6]:A[0:2] # A[0:2:1,0:2:1,0:4:1]

と同じ

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]]])

いろいろ試して確認する.(最初)

:

(最後−1)

:

Δ

72 / 83

(73)

python

のスライス操作

$ ipython

In [1]:from numpy import * In [2]:A = array ([1 , 2, 3]) In [3]:A = array(range(24))

In [4]:A = A.reshape(8,3) #

長方形

In [5]:A = A.reshape(4,2,3) #

直方体をイメージ!

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]], [[12, 13, 14],

[15, 16, 17]], [[18, 19, 20],

[21, 22, 23]]])

In [6]:A[0:2] # A[0:2:1,0:2:1,0:4:1]

と同じ

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]]])

いろいろ試して確認する.(最初)

:

(最後−1)

:

Δ

73 / 83

(74)

python

のスライス操作

$ ipython

In [1]:from numpy import * In [2]:A = array ([1 , 2, 3]) In [3]:A = array(range(24))

In [4]:A = A.reshape(8,3) #

長方形

In [5]:A = A.reshape(4,2,3) #

直方体をイメージ!

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]], [[12, 13, 14],

[15, 16, 17]], [[18, 19, 20],

[21, 22, 23]]])

In [6]:A[0:2] # A[0:2:1,0:2:1,0:4:1]

と同じ

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]]])

いろいろ試して確認する.(最初)

:

(最後−1)

:

Δ

74 / 83

(75)

python

のスライス操作

$ ipython

In [1]:from numpy import * In [2]:A = array ([1 , 2, 3]) In [3]:A = array(range(24))

In [4]:A = A.reshape(8,3) #

長方形

In [5]:A = A.reshape(4,2,3) #

直方体をイメージ!

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]], [[12, 13, 14],

[15, 16, 17]], [[18, 19, 20],

[21, 22, 23]]])

In [6]:A[0:2] # A[0:2:1,0:2:1,0:4:1]

と同じ

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]]])

いろいろ試して確認する.(最初)

:

(最後−1)

:

Δ

75 / 83

(76)

python

のスライス操作

$ ipython

In [1]:from numpy import * In [2]:A = array ([1 , 2, 3]) In [3]:A = array(range(24))

In [4]:A = A.reshape(8,3) #

長方形

In [5]:A = A.reshape(4,2,3) #

直方体をイメージ!

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]], [[12, 13, 14],

[15, 16, 17]], [[18, 19, 20],

[21, 22, 23]]])

In [6]:A[0:2] # A[0:2:1,0:2:1,0:4:1]

と同じ

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]]])

いろいろ試して確認する.(最初)

:

(最後−1)

:

Δ

76 / 83

(77)

python

のスライス操作

$ ipython

In [1]:A = A.reshape(4,2,3) #

直方体をイメージ!

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]], [[12, 13, 14],

[15, 16, 17]], [[18, 19, 20],

[21, 22, 23]]])

(1,7,13,19)

と,一本だけ取り出すには?

In [2]:A[:,0:1,1:2]

array([[[ 1]], [[ 7]], [[13]], [[19]]])

いろいろ試して確認する.(最初)

:

(最後−1)

:

Δ

77 / 83

(78)

python

のスライス操作

$ ipython

In [1]:A = A.reshape(4,2,3) #

直方体をイメージ!

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]], [[12, 13, 14],

[15, 16, 17]], [[18, 19, 20],

[21, 22, 23]]])

(1,7,13,19)

と,一本だけ取り出すには?

In [2]:A[:,0:1,1:2]

array([[[ 1]], [[ 7]], [[13]], [[19]]])

いろいろ試して確認する.(最初)

:

(最後−1)

:

Δ

78 / 83

(79)

python

のスライス操作

$ ipython

In [1]:A = A.reshape(4,2,3) #

直方体をイメージ!

array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8],

[ 9, 10, 11]], [[12, 13, 14],

[15, 16, 17]], [[18, 19, 20],

[21, 22, 23]]])

(1,7,13,19)

と,一本だけ取り出すには?

In [2]:A[:,0:1,1:2]

array([[[ 1]], [[ 7]], [[13]], [[19]]])

いろいろ試して確認する.(最初)

:

(最後−1)

:

Δ

79 / 83

(80)

参考資料

..

1

Python Scientific Lecture Notes

http://scipy-lectures.github.io/index.html

80 / 83

(81)

機械学習

(日経コンピュータ

2014

1

9

日号)

81 / 83

(82)

本日の課題

感想・質問を

200

字程度で述べよ.できるだ け他人と違うコメントになることを意識して 書くこと.字数が短いので,言いたいこと・

要点だけ書くこと.

メールで

[email protected]

宛に提出.

テキストメールを送ること(

Word

ファイル を添付しない).

本文の最初か最後に所属学科・氏名を記述

• Subject

(メールの件名) は

20140123ic-0000000

(学生証番号)

82 / 83

(83)

83 / 83

参照

関連したドキュメント

Three different points of P 2 are the inverse image c − 1 (l) of a trisecant l of the projected Veronese surface Im c iff all conics that fulfill the linear condition given by P

Graph Theory 26 (1997), 211–215, zeigte, dass die Graphen mit chromatischer Zahl k nicht nur alle einen k-konstruierbaren Teilgraphen haben (wie im Satz von Haj´ os), sondern

Heidi Stutz, Alleinerziehende Lebensweisen: Care-Arbeit, Sorger echt und finanzielle Zusicherung, in: Keine Zeit für Utopien?– Perspektive der Lebensformenpolitik im Recht, (0((,

(( , Helmut Mejcher, Die Bagdadbahn als Instrument deutschen wirtschaftlichen Einfusses im Osmannischen Reich,in: Geschichte und Gesellschaft, Zeitschrift für

Thoma, Die juristische Bedeutung der Grundrechtliche Sätze der deutschen Reichsverfussungs im Allgemeinem, in: Nipperdey(Hrsg.), Die Grundrechte und Grundpflichten

LAUDIS ® Herbicide is intended for postemergence application in field corn (including silage corn, seed corn), sweet corn, and popcorn for the control of annual broadleaf and grass

出典 : Indian Ports Association &amp; DG Shipping, Report on development of coastal shipping 2003.. International Container Transshipment Terminal (ICTT), Vallardpadam

Pre-Harvest Interval (PHI): 0 day(s) Minimum interval between applications: 7 days Minimum application volume: 30 gallons/Acre (Ground) Maximum FLINT Extra allowed per year: 7.6