X



Pythonのお勉強 Part56
レス数が1000を超えています。これ以上書き込みはできません。
0865デフォルトの名無しさん
垢版 |
2018/06/13(水) 18:29:08.68ID:HXlAcUu8
イマイチやりたいことが見えないが、
fuga =",".join([str(s).replace("さんま","ぐんま") for s in hoge])+ "\n"
0866デフォルトの名無しさん
垢版 |
2018/06/13(水) 18:33:39.96ID:f64ViDwD
>>865
ありがとうございます。
補足説明したいのですが、いかんせん私が初心者すぎて説明すら難しいのです。
joinを調べてみます。
0867デフォルトの名無しさん
垢版 |
2018/06/13(水) 18:43:39.13ID:f64ViDwD
なんというか列300、行400くらいのファイルが有りまして。
一行毎に変換処理を書いてるのですが、列は処理しない項目が多いのです。
300の内、10項目ほどしか処理が無いのです。
hoge[0]〜hoge[300]とか力技でも良いかなと思って書いてますが、"変換しない"箇所はスキップできないかなーと思っているしだいです。
0869デフォルトの名無しさん
垢版 |
2018/06/13(水) 19:53:45.62ID:hQ1ezRY5
import csv

with open("1.csv") as input:
  writer = csv.writer(output)
  reader = csv.reader(input)
  for row in reader:
    row[0] = row[0].replace("さんま", "ぐんま")
    writer.writerow(row)
0870デフォルトの名無しさん
垢版 |
2018/06/13(水) 19:55:11.91ID:hQ1ezRY5
あら
ごめん、  は空白に置き換えて
0872デフォルトの名無しさん
垢版 |
2018/06/14(木) 10:01:22.21ID:b+x6hMO7
fuga =",".join(str(s).replace("さんま","ぐんま") for s in hoge if s == 0)+ "\n"
じゃないのか
0873デフォルトの名無しさん
垢版 |
2018/06/14(木) 10:07:09.32ID:zDlcM/ZJ
>>868
csvならpandas使ったらいいよ。ちょっと慣れないとつかいにくいけど色々と処理も用意されてるし、速いし。
0874デフォルトの名無しさん
垢版 |
2018/06/14(木) 13:13:48.87ID:bu9zg9Xo
ありがとう、pandasは選択肢に入っていますが基本的な処理を覚えたいので使用せずに試行錯誤しています
0875デフォルトの名無しさん
垢版 |
2018/06/14(木) 19:34:53.33ID:HGnKAsKb
spyderの変数エクスプローラーの表示を暗くしたいんだけど何かいい方法ないですか?
0876デフォルトの名無しさん
垢版 |
2018/06/16(土) 07:00:13.60ID:rHcXKEyD
prettytableについて質問です。
以下の場合、City nameは左揃え、AreaとAnnual Rainfallは右揃えになるんですが、
ヘッダのみ中央揃えにするにはどう書けばよいんでしょうか?

$ vim alignment.py
#!/usr/bin/python3

from prettytable import PrettyTable

x = PrettyTable()

x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]

x.align["City name"] = "l"
x.align["Area"] = "r"
x.align["Annual Rainfall"] = "r"

x.add_row(["Adelaide", 1295, 1158259, 600.5])
x.add_row(["Brisbane", 5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])

print(x)

$ ./alignment.py
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
| Adelaide | 1295 | 1158259 | 600.5 |
| Brisbane | 5905 | 1857594 | 1146.4 |
| Darwin | 112 | 120900 | 1714.7 |
+-----------+------+------------+-----------------+
0878デフォルトの名無しさん
垢版 |
2018/06/16(土) 11:20:55.92ID:eJREzlFG
すいませんめっちゃ初心者なんですけど
>>> "5" + 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> "5" - 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'int'
こんな感じで
"5" + 1と"5" - 1という非常に類似した二つの「異なる型どうしの操作で起こるエラー」が
全く違うエラー内容になるのはなぜですかね。
Python3です。
0880デフォルトの名無しさん
垢版 |
2018/06/16(土) 11:31:58.26ID:naGQb1Ef
>>877
野良
0882デフォルトの名無しさん
垢版 |
2018/06/16(土) 16:05:58.30ID:TJIUHWP+
研究室のMatlabが2017bから更新されないからPythonに移行したくてMatlabと似た使用感のSpyder使い始めたけど
古いMatlabでもグラフ作成はPythonより圧倒的にやりやすいから移行できない
下記のQiitaの記事読んだけどいまいち自由自在に操作できない
https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9
0884デフォルトの名無しさん
垢版 |
2018/06/16(土) 16:29:50.18ID:naGQb1Ef
pythonをdisりに来ただけか
0885デフォルトの名無しさん
垢版 |
2018/06/16(土) 16:31:48.39ID:4s08VDiG
何度も言われてるけど馬鹿には無理だから
0887デフォルトの名無しさん
垢版 |
2018/06/16(土) 19:07:52.79ID:rHcXKEyD
>>877
どうもありがとうございます
prittytableではヘッダのみ中央揃え、内容は左揃えってやるのはムリでしょうか?
0889デフォルトの名無しさん
垢版 |
2018/06/16(土) 19:53:08.00ID:eJREzlFG
>>888
とすると
"5" + 1
の場合は1が整数型だという点で、
"5" - 1
の場合は"5"が文字列型だという点でエラーが起きたという認識でよいですか。
0890デフォルトの名無しさん
垢版 |
2018/06/16(土) 19:56:59.16ID:eJREzlFG
ああなるほど
試しに
5 + "1"
とやると
"5" - 1
とやったときとほぼ一緒の内容の警告(strとintが逆、-と+演算子が違うだけ)が出力されました。
なにぶんこの時分になってPython初心者なので変な質問をしてすいませんでした。
とりあえず自分のなかでは納得できました。
「Pythonは他の一般的な言語と同様に左から解析をしていき、
演算子は左項の型推論で得られた結果によってその意味を変えることがある」
ということですね。
0891デフォルトの名無しさん
垢版 |
2018/06/16(土) 21:22:52.11ID:V0Z3yofC
Ruby と同じ。
2項演算子は、左側の型のメソッドになるのかな?

文字列型の、+ メソッドは、文字列の連結
0892デフォルトの名無しさん
垢版 |
2018/06/16(土) 21:31:05.21ID:xo8+58G0
同じと言われましても、そのlubii?とか言う泡沫言語なんて知りませんし興味もありません。
本屋の棚に、そんな言語有りませんでしたよ?
pythonは一棚占有してましたが。
0893デフォルトの名無しさん
垢版 |
2018/06/16(土) 21:33:07.37ID:eJREzlFG
>>891
あーなるほど
ちょっとというかかなり蛇足ですが
JavaScriptだと(有名なのでご存知かもしれません)
console.log("5" + 1)
51
console.log("5" - 1)
4
という処理をするんですよね。Pythonだとどうなのかなと気になったので。
0895デフォルトの名無しさん
垢版 |
2018/06/17(日) 00:58:14.74ID:Hwfrbz2H
オライリー のPythonによるWebスクレイピングって本買ったんだがこれは機械翻訳か?
パラっと見てるがtreeが木でPrintは印刷となってて酷いぞ
意味のわからない日本語が時々出てくるんだがそれももしかして直訳なのかと思うとゾッとする
0896デフォルトの名無しさん
垢版 |
2018/06/17(日) 01:01:10.30ID:QL/zJT52
ゾッとするバカやなコイツw
0897デフォルトの名無しさん
垢版 |
2018/06/17(日) 02:35:57.34ID:JgwWYBD4
today = datetime.today()
today_date = datetime.strftime(today, '%Y-%m-%d')

print(today_date)

朝の5時から翌日の5時前今日の扱いにしたい時はどうしたらいいでしょうか?
0900デフォルトの名無しさん
垢版 |
2018/06/17(日) 14:05:34.76ID:sqEb+s4v
numpyの
アダマール積の値が大きいほど
2つの行列は近似的な物だと判断できるんですか?
0902デフォルトの名無しさん
垢版 |
2018/06/17(日) 22:22:32.37ID:TCydU/Wg
>>900
アダマール積?
0905デフォルトの名無しさん
垢版 |
2018/06/18(月) 22:34:27.41ID:c52GmVnb
スクリプトを動かしていて任意のタイミングで終了させるにはどんな方法がありますか?
例えば、キーボードのQを押すとスクリプトが終了するようにさせたいです。
0907デフォルトの名無しさん
垢版 |
2018/06/18(月) 22:59:48.49ID:c52GmVnb
コントロールCを使うのが一般的ですか?
popenのwaitを使ってみてるんですけれど、ctrl+Cで止めると
Traceback何々が数行表示されるので、この表示が出ない逃したいいなと思いました。
停止させたら、任意の文字も表示できればもっといいです。
0908デフォルトの名無しさん
垢版 |
2018/06/18(月) 23:12:03.97ID:YbHtF4sg
>>907
何が一般的か知らない。
任意のキーで停止できるようにしたいならcursesとか使うんだろうなと思うけど、おれは使ったことないからわからん。
お手軽にやりたいならctrl+cで止まるようにして、KeyboardInteruptを例外処理しとけば楽かと。
0911デフォルトの名無しさん
垢版 |
2018/06/19(火) 02:53:49.41ID:DGMT9Nzy
https://docs.python.jp/3/library/venv.html
Python3のvenv仮想環境を使おうと思うのですが
インストール先の推奨パスとかありますかね。
ブログを見たりすると~/venv36とかみたいなんですが、できればホームディレクトリには置きたくないです。
もう少し体系化された場所に置きたいです。
0912デフォルトの名無しさん
垢版 |
2018/06/19(火) 03:29:26.55ID:DGMT9Nzy
すいませんpython3-venvパッケージが提供されていたのでそれを使用することにしました。
ちなみに/usr/lib/python3.5/venvでした。
0913デフォルトの名無しさん
垢版 |
2018/06/19(火) 04:15:21.86ID:hCbA6sKc
>>910
どうもありがとうございます。そちらも試してみます。

関数の勉強をしています。

画像のように書いて、print_info(program_id)を実行すると、111行目でエラーになってしまいます。

ためしに106行目をコメントアウトして107行目のコメントを外すと正常に動きました。

program_id()を実行すると、ちゃんと2018061867184という文字が取得出来るので、その文字を106行目と109行目のpprogram_idに入れたいです。

どこが間違えていますか?

https://i.imgur.com/4QzrsIM.jpg
0914デフォルトの名無しさん
垢版 |
2018/06/19(火) 05:04:41.55ID:2WBCmyr3
>>913
エラーには説明書いてないの?
requests.get()で失敗してるんだろうけど、area_id, service_id, apikey, info_url は使う前にそれぞれ値が入ってる(空じゃない)?それをそれぞれ print() してみよう
info_url を組み立てた後で、それをブラウザにコピーしてjsonが返ってくる?
0915デフォルトの名無しさん
垢版 |
2018/06/19(火) 05:28:56.39ID:6x0qbtHZ
>>913
エラー内容を書かない時点で質問としてダメでしょう。
コードも回答する人が追試できるように、pastebinとか、ろだに貼らないと。

そもそも、program_id()の実行結果が取得できてるんでしょうかね。
人間に見えるからといって、pythonクンにわかるように伝えているとは限りません。

実行の結果として、一体どの項目を取得したいのでしょうか。
その結果として取得したいのはどのような類のものですか?

これらをきちんとpythonクンに伝えないと働いてくれませんよ。
0916デフォルトの名無しさん
垢版 |
2018/06/19(火) 05:43:58.35ID:6x0qbtHZ
もう少し噛み砕くと、
実行結果を持ち出すおまじないと、
IDの種類を決めるかもしれないおまじない、
見たところ、この辺りがまず足りないようです。
0917デフォルトの名無しさん
垢版 |
2018/06/19(火) 05:55:04.25ID:hCbA6sKc
>>914, 915
どうもありがとうございます。

20行目のようにinfo_urlをプリントしてみた所、以下が出力されました。(ほげほげの部分は実際には自分のapikeyです)

2018061967188
http://api.nhk.or.jp/v2/pg/info/130/n1/<;function program_id at 0x10ab248c8>.json?key=ほげほげ

15行目のprint_infoの引数と16行目の書き方が間違えているんじゃないかなと思っています。

13行目のprogram_id()を実行すると、今の時間だと
2018061967188
が出力されます。

その文字15行目のprint_infoに渡したい時は、15行目のようにprint_info関数の括弧の中にprogram_id関数をいれて、
19行目のinfo_urlのpprogram_idに1行目の結果を入れたい時は、16行目のように変数に入れるんだと思ったんですが。。。

https://pastebin.com/CH9vt19f
0918デフォルトの名無しさん
垢版 |
2018/06/19(火) 05:57:07.57ID:hCbA6sKc
画像のほうが見てもらえるかなと思ったんですが、pastbin使う事にします。ごめんなさい。
0919デフォルトの名無しさん
垢版 |
2018/06/19(火) 06:00:33.27ID:hCbA6sKc
>>916
IDの種類とはintとかfloatとかといったデータ型の事でしょうか?その辺りもう一度本を読んでみます。
0920デフォルトの名無しさん
垢版 |
2018/06/19(火) 06:08:04.91ID:hCbA6sKc
<function program_id at 0x10ab248c8>
となっているので、これだと関数なので、実行結果が持ち出せていないって事ですね。
持ち出すおまじないちゃんと調べてみます。
0922デフォルトの名無しさん
垢版 |
2018/06/19(火) 06:15:45.77ID:hCbA6sKc
>>921
そうです。
pprogram_id = program_id
こう書けば、program_id関数の実行結果をpprogram_idに入れてくれるんだと思ったんですが、
pprogram_id = program_id
これはただprogram_id関数にpprogram_idって名前を付けただけなんだということを今、理解出来ました。
0924デフォルトの名無しさん
垢版 |
2018/06/19(火) 06:48:28.15ID:6x0qbtHZ
>>917
そもそも、関数program_id()の結果を、実行後の23行目の後(関数の外)で、取得できていないはず。
print()はあくまで"関数の中だけ"で"見えているだけ"ということをお忘れなく。 ←ここ重要

で、関数program_id()で何を取得したいのでしょうか?
見たところ、now_dataでいいんだよね?
ここで関数program_id()の外にこれを持ち出すおまじないが必要ですよ。

色々見えてきたようですが、
肝心なのはここです。
実は、自分も同じような勘違いをしていたので…
0925デフォルトの名無しさん
垢版 |
2018/06/19(火) 07:25:41.33ID:hCbA6sKc
>>924
23行目に書いてあるprogram_id()は必要なく、ちゃんとこの関数が動くか確認のために先ほどとりあず書いてみました。

関数program_id()で取得したい物は、関数program_idのJSONデータ( now_dataの中['nowonair_list'][service_id]['present']['id'] )のidに入っている文字列です。

その文字列をprint_infoに渡したいので、print_infoを実行する時に括弧の中にオブジェクトとしてprogram_id関数を入れました。

本の中で関数のページの中の「関数呼び出し」や「オブジェクト」について書かれてあるんですが、自分にはそこの理解が足りてないんだと思います。

本の中に以下のコードが書いてありました。run_something_with_argsの中でadd_argsを動かしているのは理解出来るんですが、14という文字列をrun_something_with_argsに送る方法が分かりませんでした。

def add_args(arg1, arg2):
print(arg1 + arg2)

def run_something_with_args(func, arg1, arg2):
func(arg1, arg2)

run_something_with_args(add_args, 5, 9)
0926デフォルトの名無しさん
垢版 |
2018/06/19(火) 07:58:43.57ID:2WBCmyr3
>>925
1. program_id() 関数の最後を修正して program_id を返すようにする。具体的には12行目を有効にして14行目に return program_id とでも付け加えればよい
2. 23行目を id = program_id() として porgram_id() 関数が返した値を一旦 id に格納する。心配ならその後に print(id) で中身が入っているか確認
3. 24行目を print_info(id)とする
0927デフォルトの名無しさん
垢版 |
2018/06/19(火) 08:17:21.90ID:bQod7mqP
月3000でPyQ始めようかな。。
0928デフォルトの名無しさん
垢版 |
2018/06/19(火) 08:37:12.54ID:hCbA6sKc
>>926
どうもありがとうございます。

https://pastebin.com/JutGNtYk

上記を実行すると、ちゃんと以下のurlが出力されました。

http://api.nhk.or.jp/v2/pg/info/130/n3/2018061967375.json?key=ほげほげ

何が起こったのかまったく理解出来ずにいます。
16行目のprintと17行目のreturnの違いと、31行目の変数の意味について調べ理解出来るようにします。

※おまじないを調べているうちに関数内でグローバル変数を使うにはglobalキーワードを付ける必要があるとあったので試してみました。
0930デフォルトの名無しさん
垢版 |
2018/06/19(火) 10:12:36.50ID:bKeE7xb7
>>928ですが、
globalの使い方間違えてました。

関数Aの中の変数AAをグローバルで使いたい時に
関数Aの中にglobal AAと書くんですね。

関数BでそのAAを使いたい時は、
関数Bの中にA()と書けば関数Bの中で変数AAを扱える事が分かりました。

982でも試してみます。
失礼しました。
0933デフォルトの名無しさん
垢版 |
2018/06/19(火) 10:51:31.37ID:/oqopomm
globalどうこうは初心者スレに行ったほうが良い気がします。
またこういう基本的な内容を人に聞く前に自分で調べる癖をつけたほうが良いかと。
そうしないといつまでも成長しません。
0936デフォルトの名無しさん
垢版 |
2018/06/19(火) 13:12:44.92ID:o66PdNgP
del x
0937デフォルトの名無しさん
垢版 |
2018/06/19(火) 18:28:29.65ID:UoSE2jcW
>>892
lubiiでなくてruby
0938デフォルトの名無しさん
垢版 |
2018/06/19(火) 20:32:26.53ID:HXOaqD/G
pathlibで1万ファイルくらいあるディレクトリいじって遊んでたけどis_dir()ってクソみたいに遅いのな
内包表記で書いてもそれだけで1秒弱食うとかもうちょっと考え直せよ
0940デフォルトの名無しさん
垢版 |
2018/06/20(水) 00:29:26.45ID:OKtLg5rz
多変量解析で使用したいのですが、Rのbestglm関数のように与えた説明変数のうち有意なものを抽出してくれるような関数やパッケージってありますか?
sklearn使って簡単な重回帰分析まではできるのですが扱う説明変数が多くて困ってまして
0941デフォルトの名無しさん
垢版 |
2018/06/20(水) 14:45:42.80ID:4+Bgobgp
>>938
ディレクトリエントリをキャッシュせんかぎり言語関係なくそんなもん
なにをしたいのかわからんけどos.scandirかos.walk
もしかしたらtwistedがつかえるとおもう。
0942デフォルトの名無しさん
垢版 |
2018/06/20(水) 15:13:54.82ID:OnxnZInx
>>940
pandas
0943デフォルトの名無しさん
垢版 |
2018/06/20(水) 15:41:53.52ID:a//gtxPI
>>940
numpy
0944デフォルトの名無しさん
垢版 |
2018/06/20(水) 18:07:49.63ID:AAtEE73s
>>941
あるフォルダの直下のフォルダだけが欲しい(他はいらないしサブディレクトリもいらない)
いまのところcmdの dir [path] /ad /B の結果をそのまま流用してるけど多分もっとマシなやり方があるんだろうなぁ
0945デフォルトの名無しさん
垢版 |
2018/06/20(水) 18:30:02.96ID:R1zTWZY9
>>940
perogli
0946デフォルトの名無しさん
垢版 |
2018/06/20(水) 21:53:50.45ID:wgXCtC7S
なんで、スクレイピングでから始めようとする人が多いんだろう
webなら、チュートリアル的な事やったあと、どっかのAPI叩く事から始めた方がいいのに
0949デフォルトの名無しさん
垢版 |
2018/06/20(水) 22:43:18.32ID:NQCW3xu6
>>944
Ruby では、これでファイル名の絶対パスを表示する

# . で始まる、directory, file を除く
# test 直下のフォルダー内の、ファイルのみ処理する

Dir.glob('C:/Users/Owner/Documents/Ruby/test/*/*') do |file|
next if File.directory? file # ファイルだけを処理する

puts file
end
0950デフォルトの名無しさん
垢版 |
2018/06/20(水) 23:46:43.87ID:Ic2p64ce
>>949
python2でもpython3でも動きませんでした。他の方お願いします
0953デフォルトの名無しさん
垢版 |
2018/06/21(木) 00:36:09.16ID:xfFfkKpt
>>946
正直、非標準のライブラリ・モジュールやAPIに頼りきったプログラミングはつまらない。

漢なら、requestsなんて使ってないで、標準ライブラリのurllib(2)を使って書かなきゃ。
0954デフォルトの名無しさん
垢版 |
2018/06/21(木) 07:42:18.66ID:3MdVOGfd
pipで入れるライブラリって作成者が消したらダウンロードできなくなりますか?
0955デフォルトの名無しさん
垢版 |
2018/06/21(木) 08:20:57.16ID:ocZm2u1p
>>954
はい
消すのはもちろん、スパイウェアを仕込むことだって楽勝
性善説によって成り立っている極めて脆弱な仕組み
0956デフォルトの名無しさん
垢版 |
2018/06/21(木) 08:51:50.02ID:y5k3a+mj
>>954
オンラインインストールは極力避ける
仮にオンラインインストールしたときでも
実態のダウンロードもしておく
githubのリンクとかもあればforkしておく
0957デフォルトの名無しさん
垢版 |
2018/06/21(木) 08:58:13.16ID:PAM8THeI
効果があるのかないのか。
ピップ○○○バン
0959864
垢版 |
2018/06/21(木) 11:20:15.55ID:0UVjQE3U
長かったけど完成しました、このスレ住人に感謝です
0962デフォルトの名無しさん
垢版 |
2018/06/21(木) 12:44:00.81ID:IdVUfl3U
pipでパッケージをインストールするというのは、パッケージの登録者を全面的に信頼し運命を委ねるということ
もし登録者に悪意があれば、パッケージを使ってる企業を情報流出で潰すことなんて造作もない
見落とされがちだけど実はとんでもないリスクを抱えている
0964デフォルトの名無しさん
垢版 |
2018/06/21(木) 14:18:04.28ID:4fOpOd5u
クラウドベースのパッケージ管理なんてみんなそんなもんだろ。
githubやawsから直に落とす奴らもある。
ossの利用は自己責任ですよ。
0966デフォルトの名無しさん
垢版 |
2018/06/21(木) 16:42:52.27ID:4fOpOd5u
pipはオフラインでwhlを個別に意思を持ってインストールする道が用意されている分まだましかもよ。
非効率極まりないがオフラインで環境作るのも可能っちゃ可能。
0967デフォルトの名無しさん
垢版 |
2018/06/21(木) 17:43:31.14ID:UNnnYLs6
財団や企業が管理しているライブラリだけをインストール可能にするオプションはありますか?
0969デフォルトの名無しさん
垢版 |
2018/06/21(木) 21:00:52.42ID:7/J4zdhU
残念ながら天下のGoogle様とかDropbox様はその辺を重要視してないようだ
ジャップの商慣習には向いてないのかも知れないね
0971デフォルトの名無しさん
垢版 |
2018/06/21(木) 22:32:49.76ID:0x6Lg0t3
Google様は機密データに対するアクセス制御とかはインフラレベルでやってるだろうから、
特定のコンテナがマルウェアに感染したくらいなら問題ないだろう
Dropbox様はrequestsなんかの作者がその気になれば普通に潰せそう
0974デフォルトの名無しさん
垢版 |
2018/06/22(金) 12:26:28.68ID:6rhr78W1
遅くても追いついたならいいじゃないか。
0976デフォルトの名無しさん
垢版 |
2018/06/23(土) 06:20:02.35ID:88H1nA3V
Pythonのプログラムってデスクトップアプリは
実行環境みたいのインストールしなあと動かないの?
0977デフォルトの名無しさん
垢版 |
2018/06/23(土) 06:32:48.21ID:AshQdjwf
pyinstallerのようなもので単体のバイナリにできるが
トラブった場合、初心者が解決するのは厳しい
上手く動けば儲けものくらいに考える
0978デフォルトの名無しさん
垢版 |
2018/06/23(土) 06:57:04.35ID:qh6fzCGd
すっきりわかるJava、みたいな良い入門書ってPythonだと何になりますか?
0980デフォルトの名無しさん
垢版 |
2018/06/23(土) 07:52:47.20ID:F5EKZQ/w
>>978
文法はどの本でやっても同じ
オブジェクト指向学びたいならPythonスタートブックかスッキリでオブジェクト指向学ぶかじゃね?
俺のおすすめはスッキリでオブジェクト指向学んでみんなのPythonかPythonチュートリアルを読むことを勧める
0982デフォルトの名無しさん
垢版 |
2018/06/23(土) 15:26:48.55ID:S8O3pl7N
jupyter notebookのマジックコマンドが効かないんですがどうしたらいいでしょうか
%precision 3 とやったのですが桁数が変わりません
0983デフォルトの名無しさん
垢版 |
2018/06/23(土) 16:10:27.80ID:DBg92xTr
pandasで作ったデータフレームと、setの配列?があります

このデータフレームの特定の列の内容がsetに含まれているかどうか(含まれていなかったら抜き出す)
を行いたいのですが、どうすれば良いのでしょうか?

調べたらmapでlambdaを使って自作関数で存在checkしたら良さそうだと思ったのですが、lambda使ったことがないので存在checkする方法がわからないです
また、lambdaを使うよりも高速な方法があるなら教えてほしいです


データフレーム
Title Rate Title en
時をかける少女 4 TOKIKAKE
トトロ 5 TOTORO
スパイダーマン 5 Spider-Man
君の名は 4 KIMI

set
{"TOKIKAKE", Spider-Man}

抜き出したいもの
["TOTORO", "KIMI"] or {"TOTORO", "KIMI"}
0984デフォルトの名無しさん
垢版 |
2018/06/23(土) 18:22:12.28ID:Wcs6EXFh
>>983
これはどうかな?
https://ideone.com/rBXTZs

もしくはこう
>>> s = {"TOKIKAKE", "Spider-Man"}
>>>
>>> d = [['時をかける少女', 4, 'TOKIKAKE'], ['トトロ', 5, 'TOTORO'], ['スパイダーマン', 5, 'Spider-Man'], ['君の名は', 4, 'KIMI']]
>>>
>>> [x[-1] for x in d if x[2] not in s]
['TOTORO', 'KIMI']
>>>
0985デフォルトの名無しさん
垢版 |
2018/06/23(土) 18:30:51.71ID:SGamcXAQ
data = [["時をかける少女4",4,"TOKIKAKE"],["トトロ",5,"TOTORO"],["スパイダーマン",5,"Spider-Man"],["君の名は",4,"KIMI"]]
setA = {"TOKIKAKE","Spider-Man"}
が与えられていると仮定すると
setB = {x[2] for x in data if x[2] not in setA}
0988デフォルトの名無しさん
垢版 |
2018/06/23(土) 19:49:32.80ID:Wcs6EXFh
>>983
できましたー
>>> import pandas as pd
>>>
>>> df = pd.DataFrame({'Title': ['時をかける少女', 'トトロ', 'スパイダーマン', '君の名は'],
... 'Rate': [4,5,5,4],
... 'Title en': ['TOKIKAKE', 'TOTORO', 'Spider-Man', 'KIMI'],
... })
>>>
>>> df
Rate Title Title en
0 4 時をかける少女 TOKIKAKE
1 5 トトロ TOTORO
2 5 スパイダーマン Spider-Man
3 4 君の名は KIMI
>>>
>>> s = {'TOKIKAKE', 'Spider-Man'}
>>>
>>> df2 = df[~df['Title en'].isin(s)]
>>> df2
Rate Title Title en
1 5 トトロ TOTORO
3 4 君の名は KIMI
>>>
>>> df2['Title en'].values
array(['TOTORO', 'KIMI'], dtype=object)
>>>
0989デフォルトの名無しさん
垢版 |
2018/06/23(土) 22:51:53.22ID:NZXLyHuw
>>978
基本だけならどの本でも同じだし、初心者向けWebサイトでも十分
大事なのは「基本以外の何を教えてくれるか」
Pythonはいろんなことができるから、自分の目的にあった作業のやり方を教えてくれる本を探せばいい
Kindleのサンプルを入手して目次を見比べるといいよ
0990デフォルトの名無しさん
垢版 |
2018/06/24(日) 12:30:55.19ID:UHMgB5HQ
入門書はどの本でも同じとは思わないよ
多重継承とかモジュールの正しい作り方みたいなのが抜けてる本もある
0991デフォルトの名無しさん
垢版 |
2018/06/24(日) 12:50:07.02ID:EkJGuWQO
んなもんどうでもいいだろ
データサイエンスや自然科学の専門の人なんかだいたいPythonの使い方無茶苦茶だけど、
たぶんモジュールの正しい使い方に詳しい人より遥かにPythonを活用してPythonの素晴らしい実績を作ってるよ
0992デフォルトの名無しさん
垢版 |
2018/06/24(日) 12:57:12.03ID:ZPrvNUiE
使い方がぁー! 滅茶苦茶なのいぃぃー! Pythonをー! 活用しているんだってぇwww
滅茶苦茶なのに活用してるとか どの口が言ってんだよ おまえバカだろぉぉwwwww
0994デフォルトの名無しさん
垢版 |
2018/06/24(日) 13:18:20.23ID:I6qT+7Vz
モデルになった理論と計算アルゴリズムと出力結果が重要なのであってプログラミングは通過点でしかない
書き方の些細な良し悪しなんてどうでもいいんだよね
0997デフォルトの名無しさん
垢版 |
2018/06/24(日) 13:47:27.43ID:4gJIHbwS
メジャーな言語の中だとPythonのコミュニティは比較的そういう空気があるな
どうでもいい、お前の考えを改めた方が早い、そんなことより仕事しろ、って感じ
0998デフォルトの名無しさん
垢版 |
2018/06/24(日) 13:57:24.25ID:UHMgB5HQ
プログラマとは名ばかりでどちらかというとただの利用者
レストランでいうとコック側なのに客側と勘違いしてる
0999デフォルトの名無しさん
垢版 |
2018/06/24(日) 15:42:02.95ID:F1zD07yq
乙py
1000デフォルトの名無しさん
垢版 |
2018/06/24(日) 15:43:29.70ID:u5oIYfkC
うんこすれ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 120日 6時間 36分 8秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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