Pythonのお勉強 Part57

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/06/25(月) 09:57:59.24ID:aY7uj4w5
Pythonオフィシャルサイト
http://www.python.org/

■前スレ
Pythonのお勉強 Part56
http://mevius.5ch.net/test/read.cgi/tech/1519430841/

次スレは>>980が挑戦する

ソース貼れるサイト
https://pastebin.com/ ペーストビン
https://ja.osdn.net/pastebin/ OSDNコピペ ログインしないで投稿すると一週間で自動削除
2018/07/08(日) 12:36:39.11ID:XRwcXxE1
>>> num = [-3, -2, -1, 0, 1, 2, 3]
>>> result=[i+1 for i in num]
>>> d = 3
>>> c = [i+10 for i in num]
>>> b = 2
>>> a = 1
>>>
>>> def hogehoge(a, b, c):
    return a+b, b+c

>>> def hogex(a, b, c):
    return a+b+c

>>>
>>> l = []
>>> for temp in range(len(num)):
    if num[temp] > 0:
        for i in range(result[temp]):
            hoge1, hoge2 = hogehoge(a, b, c[temp])
            result2 = hogex(d, hoge1, hoge2)
            l.append(result2)

            
>>> l
[19, 19, 20, 20, 20, 21, 21, 21, 21]
>>>
>>>
>>> [hogex(d, *hogehoge(a, b, c[temp])) for temp in [temp for temp in range(len(num)) if num[temp]>0] for i in range(result[temp])]
[19, 19, 20, 20, 20, 21, 21, 21, 21]
>>>
8478
垢版 |
2018/07/08(日) 13:38:26.20ID:1Fr6jxFu
すみません間違えていました
正確に言うと、hogehogeでなんらかの座標を算出して、hogexでopencvで図形をimgに描画
これをhpgehpgeの入力を順番に変えて数回ほど繰り返したいです

for i in range(max)
if temp[i].size:
for j in range(temp[i]):
hoge1, hoge2 = hogehoge(a, b, result[i][j])
img = cv2.hogex(d, hoge1, hoge2)

リストに出力しない場合は内包表記使えないですかね?
イマイチ内包表記の事分かってないです
2018/07/08(日) 14:09:53.71ID:ai00mC6I
それ支配的なのはhogexやhogehogeだよね?
ボトルネックを見つけないと高速化の意味ないよ
2018/07/08(日) 14:14:30.75ID:XRwcXxE1
hpgehpgeはどこにあるの?
あと5chだと半角スペースが消えるから全角スペースでインデント表現しないと
リストに出力しようがしまいが内包表記は使えるよ
2018/07/08(日) 14:29:35.70ID:XRwcXxE1
>>> [print('hoge') for i in range(3)]
hoge
hoge
hoge
[None, None, None]
>>>
リストに出力しなかったらNoneが入るだけ

[cv2.hogex(d, *hogehoge(a, b, reault[i][j])) for i in [i for i in range(max) if temp[i].size] for j in range(temp[i])]
これでいけるんじゃないかな?
8878
垢版 |
2018/07/08(日) 22:59:07.98ID:vTpYTVTg
ありがとございます
アドバイスを参考に試行錯誤してたのですがちょっと自分には難しかったです

img = cv2.hogex(img, d, hoge1, hoge2)

imgという変数(画像)が既に存在する際にそれの上に何かを描画する関数なのですが、
内包表記の中でimgに代入させるのは難しいですかね?

あと、内包表記で複数個の処理を行うことって出来ますか?
感覚的にはこの様な感じです
[hogehoge(a, b), hogex(c, d, e) for i in range(num)]
2018/07/08(日) 23:22:41.95ID:Jzinsuog
条件を後から追加すんなー。
後、得たい結果がリストでないと内包表記じゃ早くならんよ?
90デフォルトの名無しさん
垢版 |
2018/07/09(月) 00:06:53.03ID:U3tDSUR2
自作関数じゃないhogexは晒してもいいだろうに
そんなことしてると誰も答えなくなる
2018/07/09(月) 03:58:46.23ID:lNBlYhG9
そう言って答えなくなったためしはない
承認欲求過多のボウフラは次々に湧く
2018/07/09(月) 09:56:58.16ID:eu099A4d
>>88
>内包表記の中でimgに代入させるのは難しいですかね?
内包表記の中で代入はできません、どうしてもやりたいならクラスで
>>> class fuga:
def __init__(self):
self.img = 0
def hogex(self, a, b, c):
self.img = cv2.hogex(self.img, a, b, c)
return self.img

>>> f = fuga() #インスタンス作って、これを使う
[f.hogex(d, *hogehoge(a, b, reault[i][j])) for i in [i for i in range(max) if temp[i].size] for j in range(temp[i])]

>あと、内包表記で複数個の処理を行うことって出来ますか?
タプルかリストにまとめれば複数個処理できますよ
>>> [(print('hoge'), print('fuga')) for i in range(3)]
hoge
fuga
hoge
fuga
hoge
fuga
[(None, None), (None, None), (None, None)]
2018/07/09(月) 09:58:49.60ID:eu099A4d
>>> class fuga:
    def __init__(self):
        self.img = 0
    def hogex(self, a, b, c):
        self.img = cv2.hogex(self.img, a, b, c)
        return self.img
2018/07/09(月) 10:00:54.05ID:TMBQQ2rn
これだったらmapでできる
2018/07/09(月) 11:55:16.44ID:bJwhh199
hogehogeかhogexがボトルネックになってたらループをどうこうしても早くならないよ。
高速化するならまずボトルネックを特定しよう。
hogehogeやhogexがボトルネックで並列処理可能ならマルチスレッドで実行すれば少し早くなるかもね。
そもそもpythonみたいな実行速度よりコードの書きやすさを重視した言語で高速化するのは大変だよ。
pythonにちゃんとしたプロファイラーとかあるの?
2018/07/09(月) 12:08:42.40ID:EKBiOe/0
「ちゃんとした」とは
2018/07/09(月) 12:44:30.49ID:bJwhh199
プログラム内の各関数の実行時間を計って、ボトルネックになる場所を特定できれば、ちゃんとしたプロファイラだよ。
今ぐぐったら、cProfileとprofileっていうプロファイリングするモジュールがあるじゃん
2018/07/09(月) 18:23:50.78ID:nl/4tW7P
3.7にしたらscrapy (正確にはtwisted)が動かなくなった
2018/07/09(月) 21:13:16.40ID:lNBlYhG9
ナイス人柱(嘲笑)
2018/07/09(月) 21:57:16.39ID:mmm1tgmy
スクレイピングは興味はあるけど
別に収集したいデータがないから学習のモチベーション上がらない
2018/07/09(月) 22:43:52.82ID:eu099A4d
データ収集以外にRSSリーダー的なのも作れちゃうぞ
更新しているかどうか確認して更新してたら開くようにするとか

RSSに対応しているサイトはもちろんRSSリーダー使っているけど
対応していないサイトの方が多いんだよね、そういうのに超便利
2018/07/09(月) 22:53:12.46ID:mAItLGpx
RSS リーダーって未だに何なのか良く分からない。
2018/07/10(火) 00:30:11.92ID:JQDf+AP0
自分でサーバー持ってないとRSSリーダー自作してもあまり便利ではないからなあ
PCでもスマホでも閲覧履歴共有できるようになってるようなwebサービスが結局一番便利
2018/07/10(火) 07:05:32.75ID:skK1uyoo
見出しだけ拾ってきて表示してくれる機能

としてもイマイチな感じなんだが>RSS
2018/07/10(火) 07:29:56.38ID:xnT+bl2i
>>104
単に見出しを拾うのではなく、「更新されたら」見出しを拾うというのがRSSの役割
チェックしたいサイトが1つ2つなら手動で確認してもいいが10や20のサイトを一々巡回していられない
2018/07/10(火) 09:21:54.94ID:6FGIeywF
ニュースなら読みたいときに読むだけだから、更新されたかどうかは興味ない。
ブログとかかね?
発信したい人はTwitterなんかだろうし。
FBとかは通知もらえるし。
2018/07/10(火) 09:37:14.32ID:ul2eLyV6
ここでRSSの有用性について議論()すんのやめてくれる?
2018/07/10(火) 10:19:01.04ID:PHmC4ipr
RSSに対応していないため自作更新チェックスクリプトで更新チェックしているのはこれくらいかな(約400個)
 5ch
 ブログ
 無料で読めるWeb漫画(裏サンデーとか)
 気になる商品のアマゾンレビューが追加されたかチェック
 気になる商品の価格.comのレビューが追加されたかチェック
 各商品サイトで新商品チェック(カメラとかファーストフードとか)
 インスタグラム
 qiitaの記事
 Youtube(登録はしたくないけどチェックしたいチャンネルとか検索結果とか)

読みたくなった時に更新チェック走らせて、更新されたものだけ出てくるから
そこから興味が沸いたのだけ見る感じ
2018/07/10(火) 11:23:14.52ID:KyUi8F6Z
>>106
Twitterは気づかないで流れてしまうことがある
タイトルだけ全件チェックして自分で取捨選択したいニュースサイトとかたまにしか更新されないブログとかはwebのRSSサービスで勝手に取得してくれるのが便利
2018/07/10(火) 13:09:48.84ID:ul2eLyV6
あっそ
2018/07/10(火) 15:03:09.67ID:QC5JWrGp
ループ実行中にソースを書き換えるとそのまま反映してくれるんだがすごいな
2018/07/12(木) 06:53:51.94ID:1VFBi7mo
pythonistaって使用者少ないのですかね?
2018/07/12(木) 08:10:25.60ID:4rXUDbhg
少なくとも日本では痛い奴しか使ってないな
2018/07/12(木) 09:26:16.55ID:UvuEUTk4
日本では!!!!www
2018/07/12(木) 10:18:06.04ID:nDPgx9Ms
玩具でプログラムを書くのは小学生までだ
2018/07/14(土) 08:31:50.55ID:NEvYB3b/
また自分の回りを見ただけで正しいと思い込んでるの?
2018/07/14(土) 10:48:42.96ID:1NIDWWGu
メクラは目を治療してから書き込みな
118デフォルトの名無しさん
垢版 |
2018/07/15(日) 07:19:50.35ID:tdmRKlgm
自分好みのエロ画像をAIに学習させて
自動収集出来そうな気もするけど
要らない画像も大量に収集されそうな気もする
そうすると結局自分で選んだ方が良い気がしてくる
2018/07/15(日) 09:52:40.51ID:QImfuemI
バカだな。
エロ画像学習させて自動生成するんだよ!
2018/07/15(日) 11:08:52.23ID:WCfEKFtx
フェイクポルノなんてディープラーニングアイコラだからなあ
時代は自家製造に回帰しつつある
2018/07/15(日) 11:36:57.02ID:QImfuemI
たかがRGBの組み合わせだからいいんだよ。
122デフォルトの名無しさん
垢版 |
2018/07/15(日) 19:00:21.79ID:8/lDj5Bx
dictionaryの扱いについてわかる人いれば教えてください

以下の辞書オブジェクトが2つあるとして重複を考慮せずに単純に合体したものを返したいです。

dict1 = {‘A’: 1, ‘B’: 2}
dict2 = {‘A’: 9, ‘B’: 8}
=>
dict = { {‘A’: 1, ‘B’: 2}, {‘A’: 9, ‘B’: 8})

リストのappendと同じことがしたいのですが,
dictionaryにはappend要素がないため困っています。
2018/07/15(日) 19:05:39.00ID:GnA/ld69
>>122
> =>
> dict = { {‘A’: 1, ‘B’: 2}, {‘A’: 9, ‘B’: 8})
それ例えば ‘A’: 1 が欲しい時はどうするつもりなの?
124デフォルトの名無しさん
垢版 |
2018/07/15(日) 19:08:02.28ID:z9dis41F
君のdictは辞書になってないが?
2018/07/15(日) 19:08:32.50ID:chucpUaP
もともとの動機は?
そっちを聞かせてもらったほうが解決早そう
126デフォルトの名無しさん
垢版 |
2018/07/15(日) 19:11:49.70ID:8/lDj5Bx
>>123, 124, 125
あ、そういえばそうですね。。
失敬。出直してきます。。
2018/07/15(日) 19:28:38.99ID:dRosDKqj
彼はスレが止まると問題を出して盛り上げようとする謎謎クン
でもちょっとアレだから問題になってない問題を出しちゃうんだ
2018/07/15(日) 19:33:50.85ID:WCfEKFtx
はい滑ってますね
陰キャが冗談を言おうとしてもこんなもんです
言い慣れてないから
2018/07/15(日) 19:39:43.35ID:dRosDKqj
>>128
大丈夫だよ、滑ってるとか滑って無いとか誰も気にしてないから
>>120もみんなスルーしてくれたじゃん、大丈夫だから!
2018/07/15(日) 22:09:19.69ID:8NDHn2sc
重複を考慮せずにっていうから、要素は元から重複しない仮定があるのかと思いきや、例に挙がってるのが普通に重複してるから意表を突かれるよね。
2018/07/16(月) 00:23:51.32ID:9a71kq0g
>>122
c++にはmultimapというのがあって、一つのキーに複数の値を持たせることができる。
キーが重複しているdictionary二つを組み合わせてmultimapのようなものを作ろうということかな?
ちょっとググったら、collections.defaultdictでそういうことができるっぽいぞ
2018/07/16(月) 00:49:59.13ID:4DAq7auC
知らんけど新しいdictのキーを配列なりsetなりにすればいいのでは
2018/07/16(月) 00:50:57.09ID:4DAq7auC
keyじゃなくて値だ
2018/07/16(月) 07:54:45.96ID:+Psc5GAR
>>122は多分こういう事がやりたいんだろうと勝手に推測して俺用に書いたメモを貼っておく

>>> d1 = {'k1': 1, 'k2': 2}
>>> d2 = {'k1': 100, 'k3': 3, 'k4': 4}
>>> d1.update(d2) #スペルミスに注意。updataではなくupdate
>>> d1
{'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4} #値がかぶるときはupdateの引数で上書きされる
135デフォルトの名無しさん
垢版 |
2018/07/16(月) 11:43:26.50ID:KKQqxuup
こうしてくれるやつない?
d3 = {'k1': [1, 100], 'k2': 2, 'k3': 3, 'k4': 4}
2018/07/16(月) 11:46:38.49ID:plGwUTF3
>>135
値が数だったりリストだったりすると使いづらいよ。
全部リストにしたほうがいい。
2018/07/16(月) 12:37:25.37ID:D0PjcW4c
>>134
updata なんて単語ないのにどうしてミスるのか謎。
2018/07/16(月) 13:12:24.71ID:tIxG6Ljl
>>137
謎だからミスってなるんじゃん?
2018/07/16(月) 13:24:20.19ID:PAsk0bs7
謎でないミスとは
2018/07/16(月) 14:02:13.62ID:+Psc5GAR
>>137
データはdata、日付はdateなわけだから
データ更新といわれたら up+data って発想にならね?
2018/07/16(月) 14:07:48.17ID:rAvhQng0
>>140
データ更新=up+data ってなら
     更新=up か?
暑さで脳みそやられちゃったのかな
2018/07/16(月) 14:38:59.21ID:D0PjcW4c
「新しいデータ、アップしといて」ってのは分からんでもない。
2018/07/16(月) 14:55:24.57ID:GVNh7z7o
どこかで一度読み間違えてずっとそうだと思いこんでたってことは、まあなくはない。

> updata
うん、ないわ
2018/07/16(月) 15:14:06.48ID:nI1ZYiFc
>>142
そのあっぷは
あっぷろーどの略なんじゃ
145デフォルトの名無しさん
垢版 |
2018/07/16(月) 16:12:28.77ID:Od4s/iux
downdate
2018/07/16(月) 19:32:18.79ID:rAvhQng0
hakodate
147デフォルトの名無しさん
垢版 |
2018/07/16(月) 19:58:15.14ID:7DuH0wkA
すみません教えてください
anacondaのcloudに登録しようとしたら
IPアドレスがアクセス禁止されてるって出るんですがなぜでしょうか
2018/07/17(火) 10:18:21.33ID:BxHOLtgl
セキュリティ担当者に聞いてください
149デフォルトの名無しさん
垢版 |
2018/07/17(火) 15:18:24.48ID:+kxKOOfA
中国のIPじゃ無理
2018/07/21(土) 10:12:54.65ID:GzQQQ0Dr
N枚のシーケンス画像から1枚の画像を作ることを考えていて、画素毎に異なるシーケンス画像の値を参照したいと考えています
シーケンス画像のオブジェクトが
shape=(N,640,480,3) dtype=uint8
画素ごとにどのシーケンスから値を選択するかのオブジェクトが
shape=(640,480) dtype=int
となっています(値は0~N-1)

LUTのようにして一度に画素をすべて参照するにはどのように記述したらよいでしょうか
2018/07/21(土) 10:34:37.16ID:51ft4y34
>>150
openCV
152デフォルトの名無しさん
垢版 |
2018/07/21(土) 11:01:09.18ID:JzufiDOi
マルチすな
2018/07/21(土) 11:07:14.69ID:O8QI/iof
Pandas
2018/07/21(土) 12:45:45.34ID:IIkAtUxj
あちらでまともな回答が得られなかったのでこちらにきました
2018/07/21(土) 13:50:19.17ID:xFXA2Npp
Pandas
2018/07/21(土) 16:38:28.48ID:j78KnOti
みんなのPythonをやったあとにおすすめな参考書を教えて下さい
157デフォルトの名無しさん
垢版 |
2018/07/21(土) 21:44:44.82ID:nYV0zQCT
Pandas
2018/07/21(土) 21:44:58.83ID:naub5pUA
Pandas
2018/07/21(土) 22:11:01.79ID:D5Tvyf53
Pythonのホットな情報が得られる日本語のサイトってありますか?
2018/07/21(土) 22:54:52.18ID:H6KFndt4
ありません
そもそも英語読めない人がPythonなんかやってもあまり意味もありません
英語を読む努力をしてください
2018/07/21(土) 23:46:53.02ID:J5rAn6B/
日本のパイソニストは情報発信能力が低いということでFA?
2018/07/21(土) 23:55:58.53ID:+SEw40ea
Python使いは理系が多いから英語を読むことに対して抵抗がないんじゃないかな
2018/07/22(日) 00:14:07.75ID:xvGrQ1qU
既に英語で出てる情報を日本語にわざわざ翻訳するより、その手間で他の調べたり中身作ったりする方がはやいしな
2018/07/22(日) 00:59:43.44ID:n48yHx1D
日本人向けpython情報サイトはビッグなビジネスチャンスじゃないかなあ
これで起業できそうだけど
2018/07/22(日) 01:28:49.72ID:VGEQDVb4
既に侍エンジニア塾とかが占領して付け入る好きないよ
166デフォルトの名無しさん
垢版 |
2018/07/22(日) 03:02:15.31ID:fV3eqRzC
電卓内蔵言語がPythonになった時代だからね
ExcelもVBからPythonに変更される気配だし
日本も今後は身近なプログラミング言語になることだろうね

月刊I/Oに掲載される言語もPython
昔はBASICやアセンブラだったのに
2018/07/22(日) 09:10:34.49ID:0Nw0spIC
IT@とかのサイトはpythonの情報記事はほとんどないね
ビジネスサイドではまだまだ
2018/07/22(日) 09:12:13.84ID:0Nw0spIC
>>165
侍エンジニア塾って調べたけどタダの入門サイトじゃん
もっとメジャーなサイトないのかな
2018/07/22(日) 09:23:44.13ID:0Nw0spIC
pythonをビジネスで使っててIT業界に幅広く人脈のある人が作ればいいんだけど
2018/07/22(日) 09:34:24.57ID:BTiGFYRw
>>166
Python 内蔵電卓があるんだ。
ポケコンみたいなやつ?
Pythonだと入力しにくそうだな。
2018/07/22(日) 09:59:41.45ID:2iSFw3Tg
侍のサイトのウザさは異常
社員の顔出しすぎ

下にずっと顔の広告出て消せないのは
考えたやつアホやろ
172デフォルトの名無しさん
垢版 |
2018/07/22(日) 11:33:52.21ID:ihFhez2u
>>166
BASICが変数・型宣言などに関して矯正されてしまったので、
古き悪しきちゃらんぽらん言語としてPythonを好む輩がいるだけだろ。
蛇の道は蛇で、汚れ仕事専用。

Excelは幅広いユーザーを持つビジネスソフトだから、Pythonなんて
気持ち悪い名前の言語が採用されるわけないし、VBAの膨大なプログラム
資産を捨ててまでPythonに乗り換えるわけがない。
173デフォルトの名無しさん
垢版 |
2018/07/22(日) 11:45:26.95ID:8XCdGVrW
>>171
bluemixサイトに出てくる眼鏡の男も視界に入るとイラつくからやめてほしい
2018/07/22(日) 12:04:10.27ID:fIKnBwa8
侍エンジニアは毎度トップ5ぐらいに出てくるが内容がズレていることも多いので開かないことにしている
175デフォルトの名無しさん
垢版 |
2018/07/22(日) 13:28:31.62ID:LiIRy0eu
>>166
10年以上遅れてる
っていうか20年遅れてる
今後もっと差は開く
2018/07/22(日) 14:13:03.45ID:xsZmx9si
日本が遅れているというか、正確に言うと日本のIT業界の大半を占めるSIerを中心とするピラミッド構造内の企業が遅れすぎている
なので一番重要なことはSIerに入らないこと、企業システムの受託開発に関わらないこと
逆に自社サービスで飯食っていけている企業であればそれなりに海外とも勝負できる力は付けられるだろう
2018/07/22(日) 14:15:16.87ID:ZN+SAgqe
Pythonでも良いんだけど、Pythonの文化に合うのか心配。
マイクロソフト謹製ライブラリか自分が責任を持つ自分のライブラリ以外が認められるかどうかだよね。
それ以外のコードを全部読まされることになる事態は避けたい。
2018/07/22(日) 14:20:51.45ID:b0C8iENx
オープンソースでもデファクトスタンダードになっていて世界中の開発者が使用しているようなものの方が
自家製ライブラリよりよっぽど信頼性高いと思うけど日本企業ってやたら自家製にこだわるよね
インフラのような命に関わるシステムならそれも必要な部分もあるかもしれないがPythonの主な用途であれば
本番環境であっても不具合出てから修正すればいいや、という考えで十分なものが大半だろう
179デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:21:52.37ID:owu96mLj
>>159
@chie8842の人に聞いて下さい。
180デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:22:30.37ID:LiIRy0eu
>>159 から >>179 の発言が出てくるとは想像できなかった
181デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:23:28.12ID:LiIRy0eu
安価ミス
>>159 の質問から発生した話題で >>177 のような発言に至るとは
2018/07/22(日) 14:28:02.03ID:ZN+SAgqe
>>178
そりゃ、自分の責任ではない〜の責任と言える必要が有るからね。
じゃマイクロソフトが責任取ってくれるかっていうとそんなこと無いと思うんだけどそういうもんだ。

全くアホらしいけどね。
2018/07/22(日) 14:29:49.63ID:ZN+SAgqe
>>181
Oh、今気付いたよ。
ExcelPythonのスレだと思ってた。

スマンのう。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況