b = np.sin(np.linspace(0,4*np.pi,1001))
y = [v if v > 0 else 0 for v in b]
こうすると、bで作ったサインカーブの配列中の、0以下の数値を全て0に置換する。
上の太線の様に、リスト内で条件式を使って、要素を指定するやり方を、リスト内包表記というらしい。
英語だと List comprehensive
http://qiita.com/trsqxyz/items/88a29b26869535e5a451
実際検索すると
http://www.secnetix.de/olli/Python/list_comprehensions.hawk
一応、さっきのやつをグラフにしておく。
import matplotlib.pyplot as plt
import numpy as np
b = np.sin(np.linspace(0,4*np.pi,1001))
x = np.linspace(0,1,1001)
y = [v if v > 0 else 0 for v in b]
plt.plot(x,b,"k")
plt.plot(x,y,"r")
plt.show()

import numpy as np
x = np.linspace(0,1,1001)
b = np.sin(np.linspace(0,4*np.pi,1001))
c = np.sin(np.linspace(0,4*np.pi,1001)+np.pi/2)
d = np.sin(np.linspace(0,4*np.pi,1001)+np.pi)
e = np.sin(np.linspace(0,4*np.pi,1001)+np.pi*3/2)
b, d, e, fの1001個の配列があって、4つを比較して最大値、最小値を抽出して、一個の配列を作るとすると、
y1 = []
for i in range(len(b)):
y1.append(max([b[i], c[i], d[i], e[i]]))
リスト内包表記を使う流れでしょ!
[max(b[i],c[i],d[i],e[i]) for i in range(len(b))]
...何か違う。他の人が書いてるのよりも、ゴリゴリしている。
まぁ...いや、うん。でも...
若干エレガンス...でもないか。
読みやすく...ないか。
ただ、リスト内包表記は読みにくいけど、賢く見える。
import time
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,1,1001)
b = np.sin(np.linspace(0,4*np.pi,1001))
c = np.sin(np.linspace(0,4*np.pi,1001)+np.pi/2)
d = np.sin(np.linspace(0,4*np.pi,1001)+np.pi)
e = np.sin(np.linspace(0,4*np.pi,1001)+np.pi*3/2)
time1 = time.clock()
y1 = []
for i in range(len(b)):
y1.append(max([b[i], c[i], d[i], e[i]]))
time2 = time.clock()
print("\"for syntax\"\n"+str(time2-time1)+" seconds")
time1 = time.clock()
y2 = [min(b[i],c[i],d[i],e[i]) for i in range(len(b))]
time2 = time.clock()
print("\"List comprehensive\"\n"+str(time2-time1)+" seconds")
plt.plot(x,b,"b")
plt.plot(x,c,"b")
plt.plot(x,d,"b")
plt.plot(x,e,"b")
plt.plot(x,y1,"r")
plt.plot(x,y2,"r")
plt.show()
#

y2 = y2+0.1すると、
TypeError: can't multiply sequence by non-int of type 'float'
あれ〜?前はできたような気がするんだけどなぁ。あれー?とか言ってたら思い出した。
y2 = np.array(y2)*0.1
これならできる。numpyあれ〜。みたいな。
(20160507追記)
付けてなかったせいで、forの後のインデントが全て表示されていなかったので直した。
【pythonの最新記事】
- 中速フーリエ変換 ~離散フーリエ変換より..
- 断面二次モーメントを、座標点の配列から計..
- 断面二次モーメントを、座標点の配列から計..
- fontファイルの文字データ(グリフ)を..
- matplotlibのpyplot.pl..
- 計算力学技術者試験の問題集 自炊(裁断→..
- pythonで、ホワイトノイズやピンクノ..
- 脳ドッグに行ってきた。→MRIの画像デー..
- matplotlibのimshowで円を..
- matplotlibの、cmapを、徐々..
- matplotlibのmake_axes..
- matplotlib floatinga..
- matplotlib plotの色を、値..
- Pythonで、「二次元フーリエ変換した..
- matplotlibのlinestyle..
- どちらが正しいRGBか。(matplot..
- matplotlibのannotateの..
- matplotlibで、x軸とy軸の数字..
- VBAで、pythonのrangeとか、..
- matplotlibのaxes3Dで、a..
https://www.vsociality.com/upload/files/2021/10/uirn7EEKN9d6oixnF5g9_11_c45eb235792adfba29f2e2a0f0a30e27_file.pdf
https://keynesssysno.weebly.com/winagents-ios-config-editor-cracked.html
https://mikebennett95.wixsite.com/bankcapelre/post/international-law-by-agarwal-pdf
https://exabthanche.weebly.com/motogp-2010-download-torent-pc.html
https://prosperryra.weebly.com/uploads/1/3/9/2/139258330/casio-classpad-30-emulator-crack-serial-key-keygen.pdf
https://trello.com/c/IGash32H/3-mine-ventilation-gb-mishra-pdf-free
https://tiapabatssar.mystrikingly.com/blog/subtitles-sony-xperia-xz1-is-1080p-torrent-free-bluray-watch-online
https://seesaawiki.jp/diggcotdeoned/d/Anvir Task Manager 9.3.3 Final Portable [full _BEST_]
https://wakelet.com/wake/mo7slpDz73BD4ZPSPqa-t
https://wakelet.com/wake/9rYzDwhqEa4tOPEesc9ll
https://wakelet.com/wake/LZnKCs4NbxoSQtTM3KwYF
https://wakelet.com/wake/6TeDK0SWtQMxSEHxXpfYg
https://uploads.strikinglycdn.com/files/48ce8978-66f3-40da-be60-b57558ccbdbe/Sindhu-Samaveli-Tamil-Movie-Mp4-Download.pdf
https://ntupomanstouddooti.wixsite.com/delonomak/post/indigo-terminal-emulator-3-0-154-crackl
https://uploads.strikinglycdn.com/files/14a603d0-497f-4210-b46d-7d477f580e38/Singh-Is-Bliing-Hindi-Full-Movie-Hd-Download-datenkabel-desktopbi.pdf
https://uploads.strikinglycdn.com/files/b2de780d-a35e-43f8-b275-becf972e957f/Mozart-Malware-Hides-Traffic.pdf
https://cdn.thingiverse.com/assets/df/ea/60/b1/97/vas-5054a-usb-drivers.pdf
https://buuddy.online/upload/files/2021/10/lp2tu7hOKEByR3ubX5i7_11_a0c86d167d519dceceba0f5a72c284a2_file.pdf
https://cityppl.com/read-blog/1922
https://madodesun.weebly.com/full-cambridge-advanced-learner-dictionary-3rd-pc-mac.html
https://uploads.strikinglycdn.com/files/c674d7d1-d029-4233-958c-174b47702869/vrelo-ljepote-zehra-hubijar-download-43.pdf
https://wakelet.com/wake/SatpQSM2C1FUMB3zwhUfb
https://uploads.strikinglycdn.com/files/df25905f-271a-4f36-860c-922e7cabd30e/download-My-Name-Is-Khan-part-5-full-movies.pdf
https://wakelet.com/wake/Q97hsyfz6w_SIQ1Jieou3
https://coub.com/stories/2695393-keith-symon-mechanics-solution-manual-free-download-pdf-rar-posswah
https://coub.com/stories/2695392-incredibox-beatbox-_hot_
https://coub.com/stories/2695391-aayoaayoaayoaayoayoaayoaayoayo-4
https://coub.com/stories/2695390-terra-nova-season-1-complete-480p-web-dl-19-updated
https://coub.com/stories/2695393-keith-symon-mechanics-solution-manual-free-download-pdf-rar-posswah
https://coub.com/stories/2695392-incredibox-beatbox-_hot_
https://coub.com/stories/2695391-aayoaayoaayoaayoayoaayoaayoayo-4
https://coub.com/stories/2695390-terra-nova-season-1-complete-480p-web-dl-19-updated
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAwaPQCgwLEgZDb3Vyc2UYgICA36mo1AgMCxIIQWN0aXZpdHkYgIDAoNLxmgsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCA4r-uCQwLEgZDb3Vyc2UYgIDAgOK_rgsMCxIIQWN0aXZpdHkYgIDAkIm8uwkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAuI-MCgwLEgZDb3Vyc2UYgIDAgITk4ggMCxIIQWN0aXZpdHkYgIDA4NeN3gsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAzrWXCwwLEgZDb3Vyc2UYgICA_-aRngkMCxIIQWN0aXZpdHkYgIDAkNPRnAsMogEQNTcyODg4NTg4Mjc0ODkyOA