くだすれPython(超初心者用) その44【Ruby禁止】

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
垢版 |
2019/07/24(水) 21:02:48.30ID:d1IM+Tl+
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨

このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう

◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
  実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/

〇前スレ〇
くだすれPython(超初心者用) その43【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1555397061/
2019/10/03(木) 14:04:58.69ID:DwNgQhCD
>>850
うち持ってる
誰でも知ってる大企業
2019/10/03(木) 14:22:25.65ID:4GYQfqj5
殆どは何年か前に自主的に変換したんだよね。
853デフォルトの名無しさん
垢版 |
2019/10/03(木) 17:54:47.90ID:sW73yJNw
プログラミングなんてやりたくねーよー
なんの役に立つんだかさっぱりわかんねーよー
2019/10/03(木) 17:55:56.25ID:wbZFe5vy
誰に強要されてるんだw
2019/10/03(木) 18:16:18.64ID:Vvozhugd
>>853 プログラムってゲームと同じだろ。 考えるな楽しむんだ。
好きなことをやれ。 嫌いなことをやる必要はない。
プログラムは無限の窓が開いている。
2019/10/03(木) 18:31:17.68ID:QW/GUpCE
直感を信じろ、自分を信じろ、好きを貫け、人を褒めろ、人の粗探ししてる暇があったら自分で何かやれ
2019/10/03(木) 22:01:40.39ID:dkX5HVkN
>>853
業務支援に役立つぞ
2019/10/03(木) 22:59:46.57ID:ArP3YJIm
matplotlib便利すぎワロタ
2019/10/03(木) 23:32:38.06ID:aXeTL6Ha
>>853
言語の選択権あるだけマシだぞ
2019/10/03(木) 23:53:39.72ID:4GYQfqj5
>>853 学生さん? ゲームでも作ってみたら?
ロボットでも良いけど。
小学生用の教材も沢山出始めてる
2019/10/04(金) 01:19:18.96ID:z4d9bLlT
l =[1,2,3,4,5,6,7,8,9]
のようなリストから
l2=[2,6,7,9]
みたいに、飛び飛びの要素だけスライスした新しいリストが作りたいんですが、どういうやり方がスマートでしょうか
本番のリストは要素数250で抜き出したい要素数は15個です
2019/10/04(金) 01:24:01.62ID:z4d9bLlT
p=[2,6,7,9]
l2=[j for i,j in enumerate(l1) if i in p]
というのを考えたのですが、なんかバカっぽい気がします
2019/10/04(金) 01:26:46.69ID:sQ4qD72o
法則性がないものにアルゴリズムを求めるな
864デフォルトの名無しさん
垢版 |
2019/10/04(金) 01:34:08.01ID:5l5U7bxj
>>862
そのコードだとl2=[3,7,8]にならない?
t2に書かれたindexでlを抜き出してくるだからね
それでいいなら、[l[i] for i in p]じゃないのかな。
そうじゃなくて、共通要素を抜き出したいんだったら大体そのコードみたいな感じになる
2019/10/04(金) 01:47:34.01ID:z4d9bLlT
あ、失礼
l2 = [i for i in l1 if i in p]ですね
なんかスライスにピックアップリストぶち込むみたいなやり方があるのかなーと思って質問しました
そうかー、こういう感じでいいのか…
2019/10/04(金) 02:03:08.39ID:kLahYNxr
あるリストから、別のリストにある要素だけ取り出したいということならsetを使う

list(set(l) & set(l2))

質問がとにかく分かりにくい
2019/10/04(金) 03:40:57.71ID:z4d9bLlT
実際にはurlみたいな文字列が250個入ったリストから、特定の15個だけ取り出すという作業をします
で要素の位置はわかってるんだけど、文字列はわからない という状況です

だからやっぱenumerate使うやつで合ってました
下手に数字で例えたからわけわからんことになってしまった。申し訳ない
868デフォルトの名無しさん
垢版 |
2019/10/04(金) 08:06:39.16ID:yLLPeGBi
>>862
numpy

import numpy as np
l = np .array(l)
p = np.array(p)
l2 = l[p]
869デフォルトの名無しさん
垢版 |
2019/10/04(金) 09:58:06.30ID:5l5U7bxj
>>867
それはenumerateいらないよ。
[l[i] for i in p]で十分なはず。
870デフォルトの名無しさん
垢版 |
2019/10/04(金) 10:32:03.56ID:H4yAqlPM
文字列が250個入ったリストの作り方を教えてください
2019/10/04(金) 12:13:19.50ID:iTXt/277
250回appendするだけだろ
何を教えるんだよ
2019/10/04(金) 12:14:47.94ID:agtdeb40
['aaa'] * 250とかないの???
2019/10/04(金) 12:18:44.97ID:aEect36P
なぜ実行してみない。
2019/10/04(金) 12:28:52.23ID:BEYT4ZYw
>>872

for st in range(1,251):
 print('URL_'+str(st))

# URL_1
# URL_2

# URL_250
2019/10/04(金) 14:02:36.12ID:5NfK7twU
["str" for _ in range(250)]
876デフォルトの名無しさん
垢版 |
2019/10/04(金) 15:36:48.48ID:fSTucKVx
ラクできるモジュールといえば?
877デフォルトの名無しさん
垢版 |
2019/10/04(金) 16:38:18.25ID:FW+Y/3wm
シートに手とか足とかつくツイスターゲームってあるけど
あれの3D版みたいなのでロボットアームで強制的に動かされるのを
pythonでコントロールしてみたい
878デフォルトの名無しさん
垢版 |
2019/10/04(金) 16:44:21.71ID:FW+Y/3wm
>>861
>>> import pandas
>>> s = pandas.Series([1,2,3,4,5,6,7,8,9])
>>> s[[2,6,7,9]]
2 3.0
6 7.0
7 8.0
9 NaN
2019/10/04(金) 16:44:24.14ID:G8fXI2dQ
>>877
お前、変態が過ぎるぞ^^;
880デフォルトの名無しさん
垢版 |
2019/10/04(金) 16:52:56.14ID:FW+Y/3wm
>>868
>>> np.array([1,2,3,4,5,6,7,8,9])[np.array([2,6,7,9])]
IndexError: index 9 is out of bounds for axis 0 with size 9
>>> np.array([1,2,3,4,5,6,7,8,9])[np.array([2,6,7,0])]
array([3, 7, 8, 1])

numpy で out of bounds 回避する方法知りたいな
881デフォルトの名無しさん
垢版 |
2019/10/04(金) 17:05:52.01ID:7eAmLvDA
>>880
配列のインデックスは0から始まる
1つずれている
2019/10/04(金) 17:13:26.64ID:eAirWXm1
こんにちは
PCで作業するときに使用するアプリケーションを
まとめて起動するスクリプトを目的別に作りたいのですが
単純に起動だけすれば良いときはsubprocess.Popen('notepad')であってますか?
subprocess.run('notepad')でも起動するのですがシェルでコードを実行すると
プロセスの終了待ちみたいになってしまったので…
883デフォルトの名無しさん
垢版 |
2019/10/04(金) 18:55:53.45ID:YCAxcrIK
subprocess.Popen(['notepad'])

OSとか環境によっては
shell=とか
他のオプションも必要
2019/10/05(土) 17:40:17.42ID:8eaxbCO5
プログラミング言語の最初には大抵print("Hello Work")なんてのが書いてますが、
PythonでAIのことを(ちょこっと)学ぼうとしたときの
Hello Worldに相当する作るものってありますか?
2019/10/05(土) 17:55:45.22ID:rp30F/e7
>>883
ありがとうございます
配列で渡すこともできるんですね
いやあ昨日質問した後アイコンを変えた方が見分けやすいと思って
exe化を試みたら見事にハマってしまいやっとさっき成功しました…
2019/10/05(土) 17:58:24.92ID:RY9rLLlz
>>884
Word2Vecを使って
どこだかの出してる新聞を解析した結果だったと思うファイルを教師にして
英文(聖書とかが無難じゃね?)を解析

2バイト文字は・・・がんばれ。
2019/10/05(土) 19:10:14.03ID:i7l1Y0em
>>884
ニューラルネットで論理演算
CNNでMNIST
ランダムフォレストでタイタニック生存率
MCMCで最尤推定
2019/10/05(土) 20:03:27.74ID:N/JZn/pV
ハローワークには突っ込まない
2019/10/05(土) 22:42:42.98ID:e+zF3nvf
>>884
画像系ならmnist一択
それ以外は専門外だから知らぬ
2019/10/06(日) 03:07:49.70ID:xEniyG0f
入門書はまずiris取り上げることが多い気がする
簡単すぎてつまらんデータだけど、hello worldレベルっていうならそうだろうなって感じ
2019/10/06(日) 18:28:05.79ID:vga0yYdh
irisをSVMとかで適当に分類してAI呼ばわりするのはもの凄ぇ違和感あるんですケド
MLの入門ってなら分かりますケドネ
2019/10/06(日) 19:16:37.05ID:qpx1VOF3
俺、入りたての頃、研究室の教授に
AIって難しそうなんですが、MLとどうちがうんですかー?って質問したら、
AI=MLって理解でいいぞ!逆も真で、ML=AIだ!って答えが返ってきたぞ。。。

>>891
AIはMLより一段以上うえの何かだと思ってるんだろうけど
その差はどこらへんがどのくらい?
具象化よろしく。
2019/10/06(日) 19:28:52.75ID:Poa32tbw
https://pbs.twimg.com/media/DzFdrL4XQAAKsnr.jpg
2019/10/06(日) 19:41:32.53ID:qpx1VOF3
>>893
イデーとマテリアみたいな関係ってことか
2019/10/06(日) 19:53:00.89ID:vga0yYdh
>>892
うーむ、似て非なるものでアルと考えるネ
MLが学術的な理論であるとするとAIは遊戯的な道楽ネ
2019/10/06(日) 20:00:03.33ID:qpx1VOF3
>>895
つまり895的には、
ML→樹木
AI→果実(ただしウマいとは限らぬ)
みたいな感じなのか?
2019/10/06(日) 21:03:39.11ID:xEniyG0f
自分はAIを実現するための技術の一つがMLだと思ってる

>>894
これは笑うところだよ
2019/10/06(日) 21:16:19.61ID:qpx1VOF3
>>897
(´ε`;)ウーン… 純粋情報工学系じゃないからか、
わらいのセンスがいまいちよーわからんわー
899デフォルトの名無しさん
垢版 |
2019/10/06(日) 22:06:11.34ID:1GG5Tgde
ちょっと前までコンピュータ将棋の開発者はAIかと問われても違うと答えてたけど、今ではそれもAIの一種として捉えられてるからな
方法はともかく学習要素があればAIになるんじゃないの
学習要素ないのにAI謳ってるのもありそうだけど
2019/10/06(日) 22:06:45.19ID:vga0yYdh
>>896
いぐさくとりぃ
例示上手ねキミ才能あるヨ
2019/10/06(日) 22:13:50.54ID:vga0yYdh
>>899
この間唯のゲーム理論をAIだとドヤ顔で紹介してて草生え散らかしたネ
ヒトが知能と解釈し得るか否かをAIの境界線上としているのだろうカ
902デフォルトの名無しさん
垢版 |
2019/10/06(日) 22:21:23.38ID:+SSpDwaf
AIの定義なんぞないから言ったもん勝ちだろな
2019/10/06(日) 23:01:04.91ID:qpx1VOF3
>>900
%E6%88%91%E5%BE%88%E8%8D%A3%E5%B9%B8%E5%BE%97%E5%88%B0%E6%82%A8%E7%9A%84%E7%A7%B0%E8%B5%9E

・・・文字化けするかな?
↓ならどうかな

\u6211\u5f88\u8363\u5e78\u5f97\u5230\u60a8\u7684\u79f0\u8d5e
2019/10/06(日) 23:08:56.33ID:qpx1VOF3
>>899
でぃーぷらーにんぐは人工知能的に第三世代の代表格らしいな
MLの各種手法は第二世代

>>902
統一見解はまだないの?
なんか
うすもんやりとしたものは かたまりつつあるんでないの?
寒天ゼリーくらいの強度かもしらんが。
2019/10/07(月) 19:14:20.38ID:CZdmuB5H
test変数に、exec等を使って文字列を追加しようと思った場合どうしたら良いですか?
test変数に宣言自体はexecの外で行いたいです

以下のようにすると、空白の文字列がprintされます。

test = ""
exec('test += "test"')
print(test)
2019/10/07(月) 21:38:31.21ID:aWHtMKCu
exec(f'test+={test}')
2019/10/07(月) 22:44:00.71ID:CZdmuB5H
>>906
ありがとうございます
2019/10/07(月) 23:19:37.27ID:WyRvg0cv
>>898
AIブームへの皮肉だよ

程度の低いものまでAIだともてはやされているので、研究者はAIって言葉を積極的に使おうとしなくなっている
pythonでまともに実装されてるものはまともな機械学習だろうけど、パワポで甘い言葉で囁いてくるようなのは紛いもんのAIなんじゃないかなって言うネタです
2019/10/08(火) 17:10:51.26ID:uaD7+k1O
学習機能がないものはAI と呼ぶべきではないだろう。
学習と、実行が分かれていても全体ではAI だから何の問題もない。

そういう意味では、電気釜が学習データーを利用して飯を炊いててもAIを使ってると言っても良いかもしれないが。
2019/10/08(火) 21:15:04.64ID:Y05mWx0F
この板だけがエンティティ不可なのか
いつのまにか5ch全体でできなくなったのか・・・ >>903

Wo hen rongxing dedao nin de chengzan! >>900
2019/10/08(火) 21:16:29.78ID:Y05mWx0F
>>908
解説ありがとう

>>909
>学習と、実行が分かれていても全体ではAI → 電気釜もAI搭載
なるほど!
そういえば、そうだな > AI家電は学習結果なデータだけ使ってる
912デフォルトの名無しさん
垢版 |
2019/10/08(火) 23:28:58.44ID:evevkQtI
どうみてもアスペな家電です
ほんとうにありがとうございました
913デフォルトの名無しさん
垢版 |
2019/10/08(火) 23:33:19.89ID:txbzJQbY
アステカ神殿!?
2019/10/08(火) 23:40:25.80ID:4CpPhkv4
とたんに皇后しくなったなw
2019/10/09(水) 13:19:11.41ID:vBNS6dZR
複数のリストをそれぞれsetに変換したいときって、どうするのが一番シンプルですか?
lists=[lis1,lis2...]にmap(set(),lists)みたいなのができないかなと思ったのですがうまく行きません(set化されない)
916デフォルトの名無しさん
垢版 |
2019/10/09(水) 13:36:18.22ID:sFmCi5mO
map(set, lists)
2019/10/09(水) 13:40:39.44ID:wmrCsqX1
mapの第一引数で関数自体を要求されてるのに関数を実行した結果を渡しちゃだめよ
2019/10/09(水) 13:48:04.87ID:e2ybTrrh
おぉ?
funcの引数部分は書かないのか
これmapのfuncに引数はとれないということですか?
919デフォルトの名無しさん
垢版 |
2019/10/09(水) 14:05:42.28ID:D6A8dkqU
関数の戻り値ではなく関数そのものを渡すから
(関数もオブジェクト)
920デフォルトの名無しさん
垢版 |
2019/10/09(水) 14:09:08.84ID:D6A8dkqU
mapのfuncに引数をとりたければ「引数を埋めた関数を呼ぶ関数」を渡すことになる
f(x,y)があり、map(f(•,2), list)がほしければ、

from functools import partial
map(partial(f,y=2),list)
2019/10/09(水) 14:22:06.15ID:e2ybTrrh
なるほど…勉強になりました
922デフォルトの名無しさん
垢版 |
2019/10/09(水) 15:20:00.54ID:gEtou4VA
インポしなきゃいけないの?ラムダでなんとかならない?
923デフォルトの名無しさん
垢版 |
2019/10/09(水) 17:56:11.45ID:D6A8dkqU
map(lambda x:f(x,2),list)
924デフォルトの名無しさん
垢版 |
2019/10/09(水) 19:02:19.94ID:fJHQLW8A
setどこ行った
925デフォルトの名無しさん
垢版 |
2019/10/09(水) 20:24:52.94ID:Rl3dhliI
呼び出し方の話でしょ
2019/10/09(水) 20:54:23.73ID:ZvOECUeE
partialよりlambdaでカリー化のがわかりやすい気がする。
2019/10/11(金) 13:19:03.75ID:A16fclQB
df.loc[bool_mask,[col_1,col_2...]]=[[1,2,3..],[2,4,6..]]
複数選択複数代入がやりたいんですが、やっぱループするしかないでしょうか?
2019/10/11(金) 19:09:58.82ID:3P56+Sdr
普通にできた
https://ideone.com/2zlBrx
2019/10/11(金) 21:37:52.14ID:A16fclQB
おお…更新用リストの転地の問題でした
もうしわけない
2019/10/13(日) 13:59:00.08ID:TumfHtO6
rangeの返り値ってlist型とちゃうの?
2019/10/13(日) 14:17:34.91ID:D2+OyZ4Y
range()の帰り値はシーケンス型のrange型である
つまりrange()はrange型である
932デフォルトの名無しさん
垢版 |
2019/10/13(日) 14:24:28.66ID:llG9wcVh
>>930
python3ではそう
range型のジェネレータが返る
いちいちlistでメモリに展開するのが非効率だから
2019/10/13(日) 15:30:57.50ID:TumfHtO6
ジェネレータっぽいオブジェクトがかえってくるんすね
サンクス
2019/10/13(日) 17:10:11.96ID:T+KUU83v
python(a.py)から別のpython(b.py)を実行したんですが、どうもb.pyの処理が実行されていないようです
a.pyとb.pyは同一ディレクトリに置いています

a.py
----------
import subprocess #サブプロセス
python_file1 = 'b.py'
print("a")
result = subprocess.check_call(['python', python_file1])
print("c")
print(result)

b.py
----------
print("b")

a.py実行
-------
a
c
0

なぜb.pyの処理がされないのでしょうか?
2019/10/13(日) 17:21:11.73ID:I8cQof7f
正常に実行されたように見えるが
2019/10/13(日) 17:27:27.77ID:D2+OyZ4Y
我々の知るよしのない異空間にbが出力されている
2019/10/13(日) 17:37:40.83ID:T+KUU83v
ありがとうございます
サブルーチン(サブスレッド?)上で実行されているという事ですね

a
b
c
0

というのが期待している動作なのですが
メインルーチン上でやりたい場合には何を使えばいいのでしょうか…?
2019/10/13(日) 19:45:05.89ID:9lWPklM4
def b():を作ってメインルーチンで呼び出す
2019/10/13(日) 20:06:07.05ID:QvtX88Gt
>>937
やってみた
うちの環境では期待通りの出力が得られたんだけど何だろね
windows10 python3.5.2
windows10上のVMWareで動いてるcentos7 python3.6.8
wsl python3.6.8
cygwin python3.6..8
すべてOKだった

a
b
c
0
2019/10/13(日) 20:11:32.39ID:TKS/8hxH
>>939なにそれきもい

>>934
「パイプ」を使って吸ったり吐いたりするといいんでないかいの
2019/10/13(日) 21:08:33.73ID:37E24O6c
同じく期待通りに動いたぞ Fedora 30

$python3 -V
Python 3.7.4
942デフォルトの名無しさん
垢版 |
2019/10/13(日) 21:31:33.70ID:oUSkq72n
IDLEだと表示されないね
端末からIDLEを起動すると、b.py の出力が端末に出ているのが見える
https://i.imgur.com/g7xdagL.png

あと端末上で a.py を実行すると全部画面に出るけど、リダイレクトとかするとずれる
% ./a.py
a
b
c
0
%
% ./a.py | cat
b
a
c
0
%
2019/10/13(日) 21:49:00.46ID:mUvVkZQa
普通に関数にして呼び出したらよくね?
てか例だとサブプロセスにする意味が分からないんだけど
その順に処理したいなら関数呼ぶべきだろjk
2019/10/13(日) 21:54:47.43ID:kaSZg9r2
>>943
同じこと思ったw
関数にするまでもなく a.py を

print("a")
import b
print("c")

と書けばいいんじゃなかろうか
2019/10/13(日) 22:01:03.22ID:2cfG7zlA
なんか計り知れない思惑でもあるんちゃうか
2019/10/13(日) 22:13:04.27ID:D2+OyZ4Y
特に深い意味はなく最近知ったsubprocessを試してみたかっただけだろう
2019/10/13(日) 22:29:53.59ID:T+KUU83v
皆様ありがとうございます

>>944様の通りにしたら普通にいけました
用途的にもどう考えてもsubprocessでやるべきではなかったです
ありがとうございました
2019/10/13(日) 22:52:27.29ID:QvtX88Gt
>>942
print('a', flush=True)
にしたらリダイレクトしても期待通りの順番になった
949デフォルトの名無しさん
垢版 |
2019/10/14(月) 07:57:39.62ID:mfuSBJ/S
兄さん、catもバッファリングあるで。
2019/10/14(月) 12:19:48.52ID:MWArLfdG
最近のGNUのcatはバファリングしないみたいだよ
-uオプション(バファリングを無効にする)は残ってるけど無視される
macとかは知らん
2019/10/15(火) 00:14:25.01ID:Bai05OKm
VSCodeでpython書いてます
フォーマッタにautopep8を入れてます
関数宣言などの上に2行空白行を入れてくるのをやめさせたいのですが
何を設定すれば良いでしょうか

例として、
# say hello
def say_hello():
 print("hello.")
これをフォーマットすると
# say hello


def say_hello():
 print("hello.")
となってしまいます
宣言と、その上のコメント行との間には改行を挟みたくありません
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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