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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/02/04(月) 21:22:10.08ID:9MrdxUVg
★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず

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

エラーを解決したいときはエラー表示や環境(バージョン/IDEまたはcommand line/OS)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その40
http://mevius.5ch.net/test/read.cgi/tech/1542874174/


◆PythonのHome Page
http://www.python.org/

◆まとめwiki
ttp://python.rdy.jp/

◆Pythonのソースコードをそのまま5ちゃんにコピペすると
  インデントが崩れるので
  こういうところ↓にはってきてください
ttp://ideone.com/      Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数を長めに指定しる。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−−
2019/02/09(土) 10:58:51.69ID:COL94ClU
>>36
pip --no-cache-dir install -I というのでpandasを再インストールしてみましたが変わりませんでした
なおPython36フォルダはC直下にあるのですが、Cドライブは60GBの空きがあります
2019/02/09(土) 11:36:44.62ID:O6W3Dl2k
CドライブにPythonディレクトリがあるのにモジュールはDドライブを見に行ってるみたいだが
2019/02/09(土) 11:37:53.32ID:O6W3Dl2k
os.path上にpandasとかいうディレクトリがあってモジュールとして認識されてんじゃないの
2019/02/09(土) 11:39:25.75ID:O6W3Dl2k
でもその場合はimportエラーかread_csvがメソッドじゃないってエラーになるか
じゃあ違うな
2019/02/09(土) 19:50:32.61ID:NkGmKmjK
>>34
70だと…
2019/02/09(土) 20:30:57.71ID:cZknnG+A
>>35
>file:///d:/(略)/pandas/_libs/parsers.pyx
>parsers.pyxというファイルはPC内に無いようなのですがどうすれば良いんでしょうか
parsers.pyxをネットから持ってきて、そこに入れれば良いんじゃないのか
4324
垢版 |
2019/02/09(土) 21:04:21.27ID:GcgAqiym
>>41 結構まだいけるよ。 ただ記憶力は衰えてるからなんでもメモして検索してるけどね。
検索が無かったら多分何もできなくなってただろうな。

経験のプラスと記憶力のマイナスでそこそこもう少し遊べるかなと。暇だもん。
久しぶりに勉強する事でアドレナリンが吹き出してきた。
2019/02/09(土) 23:34:09.13ID:vFLtltfz
>>42
work aroundとしてはありかも知れないが
普通にインストールしたら起こらないエラー出してる時点でインストールから見直すべきだなぁ

そもそものWindowsのpythonはどうインストールしたんだろうか
4524
垢版 |
2019/02/10(日) 01:21:19.18ID:OTf+aZMg
文法書を読み始めたところだが、fraction なんて目から鱗みたいな概念だな。 あって当たり前だったと思うが、初めて見た。
分子、分母共に整数で取り扱うから桁数の制限ないし。
4635
垢版 |
2019/02/10(日) 01:32:10.98ID:LUYrGpOP
>>42
Githubのpandasページからparsers.pyxをDLしてきて
問題のpyファイルのあるディレクトリにpandasフォルダ、その中に_libsフォルダを作成し
その中に配置して実行したところ、今度はparsers.pyxの中でUnicodeDecodeErrorとなりました
ただ、こういったやり方(pyファイルのあるディレクトリにフォルダを作って外部ライブラリが必要とするファイルを配置する)って
あまり一般的では無いように思うのですが、pythonでは普通なのでしょうか?

>>44
python公式から落としてきた3.6.5をインストーラ使用でインストールしました
コーディングはVSCodeです
python本体はC:\Python36に、VSCodeでコーディングしているファイルはDドライブ配下に保存してます
2019/02/10(日) 01:35:52.26ID:LUYrGpOP
追記です
インストールしているpandasのバージョンは0.24.1です
4824
垢版 |
2019/02/10(日) 01:39:19.26ID:OTf+aZMg
print('abc\ndefg')
print("abc\ndefg")
このエスケープシーケンスの改行が効かないんだけどなんで?
jupyter
4935
垢版 |
2019/02/10(日) 01:47:44.38ID:LUYrGpOP
何度もすみません
自己解決しました

どうもtest.csvの文字コードがShift-jisだったことが原因ぽいです
UTF-8にして保存しなおしたらエラーは出ず、print()で中身の出力もできるようになりました
>>35でエラーとなったparsers.pyxが無くても大丈夫でした
2019/02/10(日) 10:39:30.06ID:cu5Yhqfv
行ごとにある文字列と一致する要素の数を数え上げるコードをかきたいです。
https://note.nkmk.me/python-pandas-count-condition/
を参考に(そのままに)して次のようなコードを書いてもエラーがでます。
以下で使用するsample_pandas_normal.csvファイルのURLは
https://raw.githubusercontent.com/nkmk/python-snippets/df339a7fdbc65d1a7a310103a0f4a795dc3321a5/notebook/data/src/sample_pandas_normal.csv
です。

----------
import pandas as pd

df = pd.read_csv('./sample_pandas_normal.csv')

df_bool = (df == 'CA')
print(df_bool)
----------

実行すると
TypeError: Could not compare ['CA'] with block values
とでます。csvファイルはきちんとフォルダの中に入れてあります。
上にあげたサイトではきちんと実行できているようなのですが、
どこが間違っているのかわかりません。教えてください。
51デフォルトの名無しさん
垢版 |
2019/02/10(日) 16:50:44.55ID:25jgEgQt
>>46
馬鹿には無理
2019/02/10(日) 17:25:24.08ID:cXpJ+uYj
>>49
いいんじゃない
2019/02/10(日) 18:12:21.68ID:L/vUvPOU
>>50
df_bool = (df['state'] == 'CA')
5450
垢版 |
2019/02/10(日) 21:14:19.67ID:Y9k8mhjm
自分がやろうと思っている処理は複数列に 'CA' がでてきて
それを行ごとに何度でてくるかを数え上げるプログラムを書こうと思っています。

df_bool = (df['state'] == 'CA')

とすればうまくいくことはわかっていましたが、それでは1列しか処理できないので
不適当です。>>50のwebサイトには df == 'CA' でやっていたので
いけるはずだと思っていたのですが、うまくいきませんでした。
結局forループと転置を使って1列(1行)ごとに処理していくことにしました。
2019/02/10(日) 21:33:05.31ID:L/vUvPOU
>>54
普通にできるはずだからエラーをそのまま貼れない?
2019/02/10(日) 21:35:40.54ID:dMPfr/mY
バイオリンダンスロボットダンスええやん
2019/02/10(日) 21:35:58.69ID:dMPfr/mY
>>56
誤爆
2019/02/10(日) 21:49:45.76ID:L/vUvPOU
>>53
あ、上にエラーあったね
pandasのバージョンが古そうだ
少なくとも0.23.4では問題はないよ
2019/02/10(日) 21:52:17.40ID:QHXP4+rK
>>46
Ruby では、gem, bundler のprivate install で、
各プロジェクトのプロジェクトフォルダ内にのみに、インストールできる

一方、global install では、Windows・Ruby 2.4 では、
c/Ruby24-x64 以下のRuby 環境に入る。

例えば、
gem "sqlite3"

で、Ruby リポジトリから、以下の共有ライブラリをダウンロードして入れてくれる

c/Ruby24-x64/lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.4/sqlite3_native.so

Ruby のbundler, Node.js のnpm, yarn などは、global・private install を切り替えられるシステム。
Python にも、同様のパッケージマネージャーがあるかどうかは、わからないけど
2019/02/10(日) 22:00:17.41ID:2rmZRARw
>>56
何それ? 楽しそう!
2019/02/10(日) 22:04:17.41ID:scT3207q
>>59
5ちゃん住人のrubyへのヘイトが貯まりまくってどんどんrubyユーザーが減っていくね。おめでとう、君の活躍のおかげだよ
2019/02/10(日) 22:14:03.23ID:Z3H3Tv4Q
>>59
スレタイ嫁
2019/02/10(日) 22:17:30.83ID:KoYwv+8z
>>59
わかんねーなら黙ってろポンコツ
2019/02/11(月) 00:11:44.05ID:f3xbC2Z2
>>58
仕様変更が原因と言うことかな?
65デフォルトの名無しさん
垢版 |
2019/02/11(月) 05:48:35.50ID:hBL+nG4l
pycharm利用ですが、shift+f10が反応しません。alt+shift+f10は使えるのですが。
windows10,pcはlenovoです。
2019/02/11(月) 07:54:41.81ID:3Jv7Z+yl
捨てろ
2019/02/11(月) 10:17:13.46ID:QKPibkAC
pythonってOSSのパッケージを使わなきゃゴミみたいな印象なんですが
こんなすごいパッケージがあるぞ的なことはどこで勉強してるんですか?
2019/02/11(月) 11:19:21.82ID:orvgrbQL
>>67
知らね
2019/02/11(月) 11:42:03.69ID:rLkbUlEC
>>67
何か目的があってそれに必要なパッケージはググればすぐに見つかると思う
むしろ目的なくpython流行ってるからで始めてしまうとパッケージ難民になる
70デフォルトの名無しさん
垢版 |
2019/02/11(月) 12:02:56.85ID:itY+kGJR
>>67
その基準だとRubyもCもゴミだな
71デフォルトの名無しさん
垢版 |
2019/02/11(月) 12:29:36.90ID:CcePy3Nj
目的ありきでやってると調べるうちに自然と辿り着く
72デフォルトの名無しさん
垢版 |
2019/02/11(月) 12:33:52.27ID:itY+kGJR
出会いが無ければ御縁が無かったということだ
2019/02/11(月) 12:42:06.89ID:QKPibkAC
最初から目的ありきならそれでいいかもしれませんが必ずしも目的があるとは限りません
パッケージが出来ることからビジネスにつなげる逆方向のパターンも世の中には存在するからです
2019/02/11(月) 12:52:03.92ID:fMjwAL+6
>必ずしも目的があるとは限りません
これただの暇人じゃん
2019/02/11(月) 13:10:11.15ID:kQCK5fGz
コンピュータゲームを作ったのはその暇人たちだったな
76デフォルトの名無しさん
垢版 |
2019/02/11(月) 14:58:51.45ID:CcePy3Nj
ゲームを作るっていう目的を持ってるやん
2019/02/11(月) 15:18:59.57ID:kQCK5fGz
初期のコンピュータゲームは大学の研究用のコンピュータを勝手に使って暇つぶしの一環として作られた
数年前に死んだAI研究者マーヴィン・ミンスキーが発見したミンスキートロンに代表されるPDP-1のディスプレイハック
それに魅了された「のろすけ」ラッセルが本業そっちのけで作り出し、他のハッカーたちが面白がって機能を追加していったのが
最初期の対戦型コンピュータゲーム「宇宙戦争」ってわけだ

プログラミングっていうのはぶっちゃけそう大したものじゃない 暇つぶし程度でいいんだよ
2019/02/11(月) 17:19:02.28ID:gC4YDX1g
ニートならそれでもノープロブレムだろうけどさ
デベロップメントはビジネス上のイシューからスタートしないとプロダクトアウトになって
ソリューションのセールスがナイトメアになるのよボーイ
2019/02/11(月) 17:31:49.74ID:OKO2G8Ao
ルー大柴はどっかいけ
2019/02/11(月) 19:39:43.56ID:rLkbUlEC
>>73
ニーズとシーズのマッチングってやつかなぁ
そのコンセプトでいうならパッケージという細かい概念じゃなくて、Pythonはどんな事が得意ですか、と聞くべきだなぁ
81デフォルトの名無しさん
垢版 |
2019/02/12(火) 02:23:03.62ID:xDY2FToe
Pythonって機械学習とセットで勉強しないとあまり意味がない?
特につくりたいものがあるわけじゃなく就活時に役立てたいっていう理由で学ぼうとしてるんだけど
2019/02/12(火) 02:29:06.75ID:xM7yD0R2
分かってないなぁ
Pythonはあくまで何かしらの専門領域のライブラリを使うためのホスト言語であって。
Pythonそのものを学ぶなんて笑っちまうわwww
言語には胸襟ただして学ぶような小難しいとこないじゃんwww
2019/02/12(火) 02:34:05.82ID:sv506HrS
>>81
何の分野に進むかによる
プログラマ以外がpythonを使うことはない
それよりもエクセルとvba覚えておと普通に役に立つ
後はjsを使えるとスクレイピングで役立つことがある
自己アピールで使いたいなら機械学習がキャッチーでいいかもな
コード書かなくてもモデルやら作れるサイトがあるから、そういうの触っておくと話のネタぐらいにはなるかも知れない

>>82
しかも微妙に特殊なのがねぇ
ぴゃーって書くならC#でゲームでも作ったほうが良いし、
phpでwebサイト作る方が短時間で成果が出る
2019/02/12(火) 07:19:51.84ID:EEP8zHaj
>>83
と思ったキモオタであった
2019/02/12(火) 09:03:12.80ID:FKAIOJhy
>>81
就活時に役立てるとしたら
使ったこともない言語をゴミ呼ばわりしてしまう口の悪さを治すことかな
自分の知らない事を全部見下してそう
2019/02/12(火) 09:45:33.70ID:n9nKxlWw
そもそもその程度も自分で判断できないような奴は
メダカの学校の先生くらいにしかなれねえよ
2019/02/12(火) 10:28:51.51ID:eC1lEXzI
カナヅチだから無理。
88デフォルトの名無しさん
垢版 |
2019/02/12(火) 11:27:38.96ID:8lolhehX
88
89工学部生
垢版 |
2019/02/12(火) 12:33:05.90ID:rvJokjFw
>>83
>何の分野に進むかによる
プログラマ以外がpythonを使うことはない


JPモルガンやゴールドマン…投資銀行がトレーダーに「Python」を教える理由
https://japan.zdnet.com/article/35132512/
90工学部生
垢版 |
2019/02/12(火) 12:35:46.21ID:rvJokjFw
問題
l = [ [ 1,3,2,7,4 ], [ 4,7,2,4,9 ], [ 8,0,6,1,9 ] ]
なお、このリストは各要素ごとに一行ずつのデータとし、全部で3行のデータとする。
各行ごとに5つづつのデータで構成される。
hint 1) 保存される CSV ファイルは下記のようになる。
1,3,2,7,4
4,7,2,4,9
8,0,6,1,9
次に、"test.csv"を読み取り、CSVファイルから数値情報を抽出しなさい。
さらに各行ごとの合計を出力しなさい。(注: 保存前のリストによる合計ではない。)
hint 2) 17 26 24 の3つの数値が得られる。
hint 3) 保存されたデータは文字列になっているので、足し算をするために数値化する必要がある。
91工学部生
垢版 |
2019/02/12(火) 12:36:54.61ID:rvJokjFw
>>90の答え

#解答欄
l = [ [ 1,3,2,7,4 ], [ 4,7,2,4,9 ], [ 8,0,6,1,9 ] ]


# l を CSV ファイルに保存する
with open("test.csv", "w") as f:
for x in l:
f.write(",".join([str(a) for a in x]) + "\n")


# CSV ファイルからデータを取り込み、各行の合計を表示する
with open("test.csv", "r") as f:
for x in f:
each = x.strip().split(",")
sum = 0
for y in each:
sum += int(y)
print(sum)
92工学部生
垢版 |
2019/02/12(火) 12:38:43.95ID:rvJokjFw
f.write(",".join([str(a) for a in x]) + "\n")

each = x.strip().split(",")


このあたりがわかりません。
93デフォルトの名無しさん
垢版 |
2019/02/12(火) 13:08:13.97ID:8lolhehX
これで充分
','.join(str(a) for a in x)
94工学部生
垢版 |
2019/02/12(火) 13:34:12.44ID:rvJokjFw
ワシのプログラミング授業歴

1浪→今の私大工学部電気系に入る→
1年目で1留→プログラミング前期はなんとか単位を取るも、プログラミング後期を
再再履修し、Cの応用プログラムが理解できずに死亡していた
泣きっ面に棚から牡丹餅で、プログラミング講師「今年からプログラミング後期はPythonやります」
と天の救いがあった。留年とかした甲斐があったというものだ。

でpythonはCみたいなどうしようもない難解とは違い、
「やればやっただけ上達する」ような感触を受けた。
今回は落ちたかもしれないが、次は必ず仕留める。
95工学部生
垢版 |
2019/02/12(火) 13:40:34.21ID:rvJokjFw
>>93
それに書き換えてみましたが、
実行結果が184
となり

下の答えとは違ってきました。

17
26
24
96工学部生
垢版 |
2019/02/12(火) 13:45:24.25ID:rvJokjFw
>>93

+"\n"をそのあとに付けたらつまくいきました。
[]は無駄なようですね。ありがとうございます。
2019/02/12(火) 15:06:06.19ID:QzLgc2xe
>>92
書き込みを全般的に見てて思うけど、小さい単位に分割して実験する事を覚えた方が良いかな
カッコの中だけ実行する、演算子の片方のみ実行するとかね

例えば
f.write(",".join([str(a) for a in x]) + "\n")
が分からない場合には
print (",".join([str(a) for a in x]) + "\n")
を試して、次に
print (",".join([str(a) for a in x]))
を、試して、さらに
print([str(a) for a in x])
を追加して実験してみる

聞く回数も減るし理解も早いと思う
98デフォルトの名無しさん
垢版 |
2019/02/12(火) 15:09:35.02ID:JhZhtSe3
独学プログラマー読んでるけどtwitterで翻訳者がつぶやいててうざい
たかが翻訳しただけなのにまるでじぶんが書いたみたいに反応してる
勘違いしてるよね
翻訳がすごいから売れたんじゃないの
勘違い翻訳者うざすぎー
99工学部生
垢版 |
2019/02/12(火) 15:52:05.30ID:rvJokjFw
>>97

貴重なアドバイスありがとうございます。
2019/02/12(火) 15:56:19.85ID:sv506HrS
なっちゃんって偉大な翻訳家がいてな・・・
翻訳にも上手い下手はあるんだよ
少なからず売上も左右するだろう
101工学部生
垢版 |
2019/02/12(火) 16:03:02.03ID:rvJokjFw
プログラムを入力するときはロックを組み立てていくが、
エラーを解析するときはブロックを崩していくというイメージか。
102デフォルトの名無しさん
垢版 |
2019/02/12(火) 23:21:44.95ID:0srnSPAN
Multiprocessingを使った処理をしたいと思ってごくごく簡単な例文をコピペして動かしてみたのですが,期待される出力がコンソール上に出ません.
一方,すこし複雑な(いくつかのプロセスを平行させても1秒ぐらいかかるような処理)例文を動かすと,出力は出ませんがCPUの稼働率的にはすべてのコアが均等に働いているようでした.
Multiprocessing自体はうまく働いているものの,なんらかの理由で個々のプロセスがコンソールに出力するのが制限されているような挙動ですが,これを出力させるにはどうすればよいでしょうか?
環境はPython3.6.1で,標準のIDLEを使っています.CPUは4コアの6700Kです.

よろしくおねがいします.
2019/02/12(火) 23:41:25.12ID:1FBNx7PM
multiprocessingで並行処理させてる関数内からprintしたときは
直後にsys.stdout.flush()しないと反映されない
104デフォルトの名無しさん
垢版 |
2019/02/12(火) 23:51:39.90ID:0srnSPAN
ありがとうございます.
それ自体では解決しませんでしたが,関連事項でググったらIDLEが悪いということが分かりました.
2019/02/13(水) 09:52:03.63ID:ik/h3+HJ
初歩的な質問なんですが
画像の顔部分の切り出しをしていて分からない部分があります
以下簡単な例に置き換えたものになります

import numpy as np

test = np.array([1, 2, 3, 4, 5])
print(test[1:1 + 3])

>>>[2, 3, 4]

と表示されます
これはどういう考え方をすれば良いのでしょうか
print(test[1:1])
では何も表示されませんが+3する事で表示されているのが良くわかりません
2019/02/13(水) 10:19:47.85ID:FsWI4s/7
pythonの仕様
このあたりを参照するといいよ。
http://d.hatena.ne.jp/yumimue/20071205/1196839438
107デフォルトの名無しさん
垢版 |
2019/02/13(水) 10:23:11.88ID:M8PJWiFY
>>105
test[m:n]はm〜n-1番目までを切り出す
2019/02/13(水) 11:33:48.61ID:0cDEleYh
>>105 [1,2,3,4,5] の要素は [0]~[4]
print(test[1:1 + 3]) は print(test[1:4]) は [1] ==2 から [4-1]==4 まで
>>>[2, 3, 4]
2019/02/13(水) 11:36:12.68ID:0cDEleYh
もし先頭だけをprintしたいのなら
print(test[0]) または、print(test[0:1])
2019/02/13(水) 11:36:56.12ID:N2s3vUnw
スライスの開始値は含めるけど終了値は含めないという指定は、最初違和感あったな
2019/02/13(水) 12:44:57.49ID:pbkwul76
>>110
俺もいまだに違和感ある
a=['お','ま','ん','こ']でa[0,2]だと['お','ま','ん']にして欲しいよな。
確か、数直線で考えるらしい.....

0 1 2 3 4
+ー+ー+ー+ー+
 お ま ん こ

で、[0:4]だと「お〜こ」になるとのことだった。でもa[4]はエラー....
2019/02/13(水) 14:58:46.57ID:os3OGdBG
ゼロベース配列という事で、i以上j未満はポインタ演算を考えると自然
(j-i)個の切り出し、終端ポインタ-先頭ポインタは何要素といった具合
2019/02/13(水) 15:03:23.54ID:kDMwAzYp
IoTやるのがPythonなのって理由ある?
Cじゃダメなのv
114デフォルトの名無しさん
垢版 |
2019/02/13(水) 15:09:37.55ID:MhIfo+Ct
ポインタとか使う言語だと、そもそもendじゃなくて個数指定になってるじゃん。
2019/02/13(水) 15:20:36.92ID:ik/h3+HJ
>>105 です
回答頂いた方ありがとうございます
test[1:1 + 3]は[1:(1 + 3)]でtest[1:4]として扱われるという事でしょうか
演算子が入ってるのを初めて見たので計算した上で扱うとは思いませんでした
116デフォルトの名無しさん
垢版 |
2019/02/13(水) 15:49:18.21ID:R/LRwZLt
>>115
「1番目から始めて3文字取り出す」という事を明示するために敢えて1+3と書いたんだろう
2019/02/13(水) 16:03:01.37ID:hD8BupCP
>>116
トッポい著者だなぁw
2019/02/13(水) 16:03:03.58ID:0cDEleYh
>>113
初心者からプロまで使える科学技術計算の新定番
IoT時代にPythonをオススメする理由
https://interface.cqpub.co.jp/wp-content/uploads/interface/2016/10/if10_012.pdf/wp-content/uploads/interface/2016/10/if10_012.pdf

PythonだけではIoTできない理由 - ウィリアムのいたずらの開発日記
https://blog.goo.ne.jp/xmldtp/e/ab0c195ea5a20a1549c13587d13a952d
<<しかし pythonでも Cythonを使えばCでコンパイルしてくれる
<<Raspberry Pi なら素のpython も使えるしセンサーもアクセスできる

PICと楽しむ Raspberry Pi活用ガイドブック
https://gihyo.jp/book/2017/978-4-7741-8919-2
最低限必要なLinux・Pythonの知識まで収録しています。

IoTを使って畑を監視する
https://tech.recruit-mp.co.jp/iot/farm-monitoring-with-iot/

TwilioとAWS IoTボタンを使った子供のトイレ訓練
https://postd.cc/iot-poop-button-python-twilio-aws/
この場合 IOSやAndroidから電話をかけてボタンを操作している
2019/02/13(水) 16:21:24.81ID:kpYtZ0RT
>>113
AIカーが来てる! 自動運転でラジコンカーを走らせよう!
https://weekly.ascii.jp/elem/000/000/422/422742/
おもちゃの自動車がAI で動く時代。
これもRaspberry Pi とpython で学習して自動運転してる。

AI と言ったらpython
120デフォルトの名無しさん
垢版 |
2019/02/13(水) 18:26:41.20ID:QnNf1eu6
>>115
test[1:-1]
test[:-1]
test[1:]
違いを説明汁
2019/02/13(水) 23:08:42.70ID:5Y5rGgZv
>>115
>test[1:1 + 3]は[1:(1 + 3)]でtest[1:4]として扱われるという事でしょうか
俺も超初心者だからお前が疑問に思っていることがなんとなくわかる
1 + 3の+は演算子。で、[x:y:z]の:は何なんだと? ひょっとして :も演算子?
でもって、[1:1 + 3]の時、:と+どっちが優先順位高いんだ?わかんね。
で、レス見ると、どうも+の方が優先順位高いと。つまり、優先順位を明示した[1:(1 + 3)]になると。
2019/02/13(水) 23:35:56.49ID:Fldw1X0G
:は演算子じゃなくて区切りだろ
そんなもん実験すればわかる
123デフォルトの名無しさん
垢版 |
2019/02/13(水) 23:43:48.56ID:5Y5rGgZv
そうなのか? 俺は勝手に俺命名してスライス演算子とか言っているが
で、スライス演算子は算術演算子の+より優先順位が低いと
2019/02/13(水) 23:49:32.46ID:jwc/pNVH
slice notation スライム記法
2019/02/13(水) 23:51:50.74ID:os3OGdBG
リファレンスではデリミタとされる、Pythonでは代入が文なのでそれもかな
https://docs.python.jp/3/reference/expressions.html#evaluation-order
2019/02/13(水) 23:55:22.49ID:jwc/pNVH
代入が単独で文なのって何か故あってのことなの?わりと珍しいよね?
2019/02/14(木) 00:02:35.62ID:xnVOqrv0
スライスって言葉がすぐに出てこない、当然なが関数のslice()も出ないって
超初心者の俺ららしいよな
https://stackoverflow.com/questions/31501806/what-does-the-slice-function-do-in-python
2019/02/14(木) 00:18:16.01ID:RyxU72PZ
いわゆるペンタックスソルトってやつか。
129デフォルトの名無しさん
垢版 |
2019/02/14(木) 08:02:20.55ID:NaDvAh4C
>>126
3.8から代入式も使えるようになるらしい
2019/02/14(木) 09:03:20.99ID:wJ5vrran
シンタックスシュガー
糖 衣 構 文って奴か

シンタックスシュガー
糖 衣 構 文を使うと超初心者にはわかりやすくなるけど

シンタックスシュガー
糖 衣 構 文の裏側で実際どのような挙動をしているのかわかりにくくなるのが欠点だよな

シンタックスシュガー
糖 衣 構 文はかしこく使っていきたいと思った
131デフォルトの名無しさん
垢版 |
2019/02/14(木) 13:23:14.58ID:b/dX4O0G
>>121
pandasとかnumpyの[:;:]使うともっと混乱する
2019/02/14(木) 18:52:34.90ID:/0O1t9cs
>>126
いや、昔の言語はそれが普通
C言語辺りから代入文が値を持つような言語が増えた
133デフォルトの名無しさん
垢版 |
2019/02/14(木) 23:06:52.19ID:Qyh3gh4h
初めて見た時は驚いた
134デフォルトの名無しさん
垢版 |
2019/02/15(金) 04:14:44.86ID:aMcTHSTs
A=B=C=0
みたいな
135デフォルトの名無しさん
垢版 |
2019/02/15(金) 11:55:58.42ID:Lyn3hfe5
pipってPythonのidleからうごかせないからいらいらしてたんだけども
teratailっていうサイトでpipはコマンドプロンプトでうごかすような仕様ですって説明あったからあたまのなかがすっきりした
2019/02/15(金) 12:13:07.08ID:vj4wf1O1
Python はとっつきやすいが、奥が深いな。 一通りの文法をある程度使いこなせるようになるまでどのくらいの時間がかかるんだろう。
2〜3か月と書いてるサイトが多い様だが
例えば、
Python チュートリアル (原文の電子書籍版は120ページだった)
https://docs.python.jp/3/tutorial/
の全て

Python 標準ライブラリ 
https://docs.python.jp/3/library/index.html#library-index
の1〜16

を読み込むだけだとどのくらいの時間?

Python 言語リファレンス
https://docs.python.jp/3/library/index.html#library-index
は必要に応じて参照。 と思ったが、言語リファレンスを見るとset だけでもかなり奥が深いな。

チュートリアルではほんのさわりしか触れていない。 このチュートリアルだけでは本当の入り口入門だな。
でもこのレベルをまず理解しないと挫折してしまうだろうな。

言語リファレンスに書かれたすべてについて書かれたチュートリアルは有るのだろうか? 膨大なページになるだろうが。
オライリーの Pythonチュートリアル 第3版 も入門用みたいだな。 (260ページ)

無料で読めるデータ分析に役立つ Python の電子書籍まとめ
https://qiita.com/ynakayama/items/8ed2854bcc3c3633345b
Dive Into Python 3 日本語版
http://diveintopython3-ja.rdy.jp/index.html
これは少し踏み込んでいるね。 プログラミング経験者向けのPythonの入門書 495ページ

>>24 の Python3 入門 は 241ページ
https://qiita.com/KatsunoriNakamura/items/b465b0cf05b1b7fd4975
2019/02/15(金) 12:56:54.47ID:vj4wf1O1
>>121 >>123 https://docs.python.jp/3/tutorial/introduction.html#strings
ここでは test[1] はインデックス
test[1:4] はスライスと書いてるね。 :はデリミッタ(区切り符号)の中の一種
下記の文法書では、 : がある場合をスライスとしている。

class slice(start, stop[, step])

要は range(start, stop[, step]) と同じ

だから、test=[1,2,3,4,5] の時
test[1:6:2] は [2, 4] と2つおきのステップもとれる
test[0:6:2] は [1, 3, 5]

https://docs.python.org/ja/3/reference/expressions.html?highlight=%E3%82%B9%E3%83%A9%E3%82%A4%E3%82%B9 
文法書 こちらだと、3.7.2も選べるね。
6.3.3. スライス表記 (slicing)
スライス表記はシーケンスオブジェクト (文字列、タプルまたはリスト) におけるある範囲の要素を選択します。
スライス表記は式として用いたり、代入や del 文の対象として用いたりできます。
スライス表記の構文は以下のようになります
proper_slice ::= [lower_bound] ":" [upper_bound] [ ":" [stride] ]
lower_bound ::= expression
upper_bound ::= expression
stride ::= expression
とあるから数値には式も許されている。 [] は省略可を示す
<略>
適切なスライスは、スライスオブジェクト (標準型の階層 参照) に変換され、その start, stop および step 属性は、それぞれ指定した下境界、上境界、およびとび幅 (stride) になります。
式がない場所は None で置き換えられます。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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