X



くだすれPython(超初心者用) その50【まず1嫁】
■ このスレッドは過去ログ倉庫に格納されています
0001蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/08/27(木) 20:24:10.68ID:WXD9Eu8v
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

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

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

【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意!
Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★ので
  ↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。最近流行中?
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

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

〇前スレ〇 くだすれPython(超初心者用) その49【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1595057607/

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
0630デフォルトの名無しさん
垢版 |
2020/10/01(木) 17:10:54.40ID:W6bAQtLI
>>625
自分の手に電極をぶっ刺してラズパイに接続するか
自分の手を動かして部屋の片付けをやらせた方が早いよ
0633デフォルトの名無しさん
垢版 |
2020/10/01(木) 21:30:06.11ID:RAmiCUGp
学生が勉強用に買えるようなロボットアームってあるの?
もちろん掃除とかは無理だと思うけど
0637デフォルトの名無しさん
垢版 |
2020/10/02(金) 00:33:11.83ID:5fPg27UF
jetsonは頭だけじゃん
アームが欲しいって言ってるんですよね?
てかPython関係なくね?
プログラム板じゃなくてロボット技術板じゃね?
0639デフォルトの名無しさん
垢版 |
2020/10/02(金) 02:20:18.25ID:QXJ/gI+6
せやねぇーARMちがいのCPUアタマでややこいわ
せやから工学的にはアクチュエータていえばええのんか
つかステッピングモータかラジコン用サーボとホムセンや百均で自作すんのとちゃうか?
Arduinoプログラミングのアプリみたいなエディタてあるんかいな?
0640デフォルトの名無しさん
垢版 |
2020/10/02(金) 09:06:40.71ID:ugOoTtJu
matlabでのfiltfilt()のように、ゼロ位相デジタルフィルター処理ができる関数はなんでしょうか
0643デフォルトの名無しさん
垢版 |
2020/10/02(金) 11:28:45.72ID:36KHjBX6
>>641
すみませんでした
0645デフォルトの名無しさん
垢版 |
2020/10/02(金) 16:48:15.55ID:GZmDSkSw
PILでshowしたイメージウィンドウを自動で閉じたい(右上のバツボタンを押さずに)のですが
どうやってやるんでしょうか
.close()や.destroy()してみましたがダメでした
img = Imag3e.open(file)
img.show()#window出現
time.sleep(3)
#windowを閉じる
0646デフォルトの名無しさん
垢版 |
2020/10/02(金) 17:01:26.32ID:WC+nGixi
window出すときに割り当ててるviewer(あぷり)次第
0647デフォルトの名無しさん
垢版 |
2020/10/02(金) 17:17:01.31ID:+YGDFlHE
stackoverflow.com/questions/6725099/how-can-i-close-an-image-shown-to-the-user-with-the-python-imaging-library
0648デフォルトの名無しさん
垢版 |
2020/10/02(金) 17:29:05.62ID:vEIDHK0R
もし viewer が Microsoft.Photos.exe なら
im.show()
time.sleep(...) のあとで

import psutil
for proc in psutil.process_iter():
if proc.name() == 'Microsoft.Photos.exe':
proc.kill()
で消えることは消える(これが良い方法だとは思わない)
0649デフォルトの名無しさん
垢版 |
2020/10/02(金) 17:39:39.86
>>646-648
なるほど
viewer次第なんですね(ちなみに実行環境はlinuxです)

ほんとはpysimpleGUI上で画像を表示させようとしたのですが
ダウンロード→保存→パスから表示→必要なくなったら削除
という方法以外でやろうとしたらうまく行かなかったので
PILで別々に画像だけ表示しようとしたら
今度はビューワを自動で閉じれない問題が発生したのが>645だったのです
とりあえずもう一度pysimpleGUI上で表示する方法を模索してみようと思います
0650デフォルトの名無しさん
垢版 |
2020/10/02(金) 17:51:28.90ID:vEIDHK0R
stringIO とか byteIO でメモリから読ませる方法があるはず
0651デフォルトの名無しさん
垢版 |
2020/10/02(金) 18:04:27.32ID:GZmDSkSw
>>650
とりあえず一度ダウンロードして保存してパス指定して云々でpysimpleGUIで表示
はさきほど成功しました
byteIOでPILのImage.show()も成功
pysimpleGUIのimage_filenameにbyteIOしたものを入れてみましたがだめでした
stringIOでやってみます
0652デフォルトの名無しさん
垢版 |
2020/10/02(金) 18:11:54.38ID:GZmDSkSw
ボンミスというかpysimpleGUIにImageがあることを見逃していました
どこぞのチュートリアルみてボタンとかのパラメータから
バックグラウンドでしか画像表示できないものだと思ってました
sg.Imageできそうです
0653デフォルトの名無しさん
垢版 |
2020/10/02(金) 18:19:38.14ID:GZmDSkSw
解決しました
ざっくり書くと
response = requests.get('画像のurl')
image = response.content
これをpysimpleGUIのlayoutで
[sg.Image(data=image)]のように読み込む
io.BytesIOしなくてもあっさり表示されました
0654デフォルトの名無しさん
垢版 |
2020/10/02(金) 21:03:33.70ID:EIS+/KyU
Pythonの自動操作プログラムのサンプルコピペしたら複数のステートメントがどうとかで動かなくてもうだめぽ
0655デフォルトの名無しさん
垢版 |
2020/10/03(土) 13:46:25.13ID:eGqVjzUw
tesseract-ocrインストールしてpytesseractで数字認識できたのですが
背景にちょっとでも線入ると急に精度がガタ落ちするのですがそういうもんですかね?
0656デフォルトの名無しさん
垢版 |
2020/10/03(土) 13:56:04.69ID:y5FkQ2yd
前処理
0657デフォルトの名無しさん
垢版 |
2020/10/03(土) 13:58:16.20ID:eGqVjzUw
やっぱ前処理して数字だけクッキリみえるようにしないといけないですよね・・
0658デフォルトの名無しさん
垢版 |
2020/10/03(土) 16:40:06.48ID:CUO5EFLQ
入れたいソフトウェアのもともとの頒布元見つけたんですが
身バレ怖いんでリンクは載せないでりどみのインストール方法だけです
windows10とmacmojabeを持ってますが強いて言えばmac使いたいです

mac用
Install them
Python 2.7 :Not the 64-bit version
PyQt4
PyEnchant ←「pythonが32bitなのに64bitだから入らない。32bitについてのpythonのmanを読め。」
のようなエラーが来てmanを読みましたがそんな項目はなかったです。
Java :Must be available on PATH on Windows ←これが理解できない。
使いたいソフトの中に.javaがないのも謎です

windows用1
Install Java if you don't have it in your computer.
http://www.java.com
Must be available on PATH on Windows
Start "open.bat".←入れたいソフトの中に入ってない謎のファイル

windows用2
Open the "HOW TO INSTALL " folder.
Install the file "python-2.7.15.msi". Make sure to enable the option
"ADD PYTHON-EXE TO PATH". "
Install "PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32.exe"
and "pyenchant-1.6.6.win32.exe". ←ググっても32bitは見つからないです
一応この方法だけは試しましたがエラーでした
WindowsError: [Error 126] 指定されたモジュールが見つかりません。

どれも理解できず失敗しました。どれでもいいのでうまくいく方法はありませんか。
ソフト作成者に聞こうかと思いましたがほかの人の質問に答えてないあたり無理そうです
0659デフォルトの名無しさん
垢版 |
2020/10/03(土) 17:06:28.08ID:rxFdctEV
> "pyenchant-1.6.6.win32.exe". ←ググっても32bitは見つからないです
嘘つき?無能?どっち?
0662デフォルトの名無しさん
垢版 |
2020/10/03(土) 20:56:36.80ID:xkenKXiX
日付と時刻で並べ替えをしたいのですが、

df_summary = df_summary.sort_values(['recording_date', 'recording_time'], ascending=[True, True])

で並べ替えできません。
どこが間違っているのでしょう?
0663デフォルトの名無しさん
垢版 |
2020/10/03(土) 22:34:51.22ID:/wA+nWqo
>Java :Must be available on PATH on Windows ←これが理解できない。
>使いたいソフトの中に、.javaがないのも謎です

a.java は、単独のファイルだろ。
Java は、tar, zip などの圧縮アーカイブの一種だろ
0665658
垢版 |
2020/10/04(日) 07:09:29.97ID:WjMigwA9
それです。すいません特定班舐めてました

散々手間かけてもらって本当に申し訳ないです。どうかどれでもいいのでインストール方法教えてください。お願いします。
0668デフォルトの名無しさん
垢版 |
2020/10/04(日) 09:52:24.24ID:tBjisLO9
csvに下記のデータが入ってます。

[[日付,来客数],
[2020/9/9,15],
[2020/9/10,18],
[2020/9/11,12],
[2020/9/12,17]]

日付から曜日を取得したいんだけど。。。
教えてください。。。
0669デフォルトの名無しさん
垢版 |
2020/10/04(日) 10:10:57.50ID:xHwGZDXv
python 日付 曜日 🔍
0670デフォルトの名無しさん
垢版 |
2020/10/04(日) 10:51:24.57ID:WrglaOe5
import io
import datetime
import pandas as pd

csv = '''
日付,来客数
2020/9/9,15
2020/9/10,18
2020/9/11,12
2020/9/12,17
'''
df = pd.read_csv(io.StringIO(csv), header=0)
print(df)
wn = ['月', '火', '水', '木', '金', '土', '日']
f = lambda s: wn[datetime.datetime.strptime(s, '%Y/%m/%d').weekday()]
df = pd.concat([df, df.iloc[:, 0].apply(f).rename('曜日')], axis=1)
print(df)
0672デフォルトの名無しさん
垢版 |
2020/10/04(日) 11:03:59.39ID:WrglaOe5
別に webAPI 使っても構わんが
リアルタイムの時刻とか使うときは
timezone 考慮しとけよ
0674デフォルトの名無しさん
垢版 |
2020/10/04(日) 12:09:35.43ID:t+5MH57F
pandas使うならto_datetimeしてstrftimeでも曜日の文字列取れるよ

locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8')
df['曜日'] = pd.to_datetime(df['日付']).apply(lambda x: x.strftime('%a'))
0676デフォルトの名無しさん
垢版 |
2020/10/04(日) 20:47:38.84ID:DtVm9v0c
>>662
自己解決しました。

>>> df['Date'] =pd.to_datetime(df.Date)

でdatetimeオブジェクトに変換する必要があったんですね
0679デフォルトの名無しさん
垢版 |
2020/10/04(日) 22:42:46.53ID:bSPUX6Ni
3.7から3.8にした
パッケージをいちから入れ直すのはめんどくさかったけど、
バージョンアップで上書きはしないほうがいいんだよね?
0680デフォルトの名無しさん
垢版 |
2020/10/04(日) 23:04:00.91ID:jdUAgnsK
下みたいなインデックスのない数値計算結果(テキストファイル)を読み込み
特定の列を消す書き方がよくわからないです(2列目と3列目だけ消す)
ファイルの整形からグラフのプロットまで一つのpythonファイルでやりたいのですが
整形だけがうまくいかない
お知恵をください


result.txt
1 1 0.00000 0.00000 0.000000E+00 5.569085E+02 5.569085E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 1 0.00000 0.189474 0.000000E+00 5.594460E+02 5.594460E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 1 0.00000 0.378947 0.000000E+00 5.668875E+02 5.668875E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 2 0.00000 0.568421 0.000000E+00 5.787263E+02 5.787263E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 2 0.00000 0.757895 0.000000E+00 5.941398E+02 5.941398E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
0682デフォルトの名無しさん
垢版 |
2020/10/05(月) 10:31:44.99ID:H6rSrLtq
import re
result = '''\
1 1 0.00000 0.00000 0.000000E+00 5.569085E+02 5.569085E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 1 0.00000 0.189474 0.000000E+00 5.594460E+02 5.594460E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 1 0.00000 0.378947 0.000000E+00 5.668875E+02 5.668875E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 2 0.00000 0.568421 0.000000E+00 5.787263E+02 5.787263E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 2 0.00000 0.757895 0.000000E+00 5.941398E+02 5.941398E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39'''
q = re.compile(r'^(\d+)\s(\d+)\s(\d+)\.(\d+)\s', re.M | re.I)
for s in result.split('\n'):
m = q.match(s)
if m:
print(f'{m.group(1)} {s[len(m.group(0)):]}')
0683デフォルトの名無しさん
垢版 |
2020/10/05(月) 12:19:45.85ID:5r4dmiXL
>>680
ヒントだけ。
csv.reader(f, delimiter=' ')
0684デフォルトの名無しさん
垢版 |
2020/10/05(月) 13:22:17.56ID:z7kgQPv3
Ruby なら、これで最初の列を削除できる

require 'csv'

# 引数は、入力ファイル名。ヘッダー行あり
table = CSV.read( ARGV[ 0 ], headers: true )

# 列モードにしてから、最初の列を削除する
table.by_col!.delete( 0 )
puts table
0686デフォルトの名無しさん
垢版 |
2020/10/05(月) 15:20:07.05ID:Eus3dpPi
Pythonによるデスクトップアプリ開発の質問です。
何十年ぶりかに趣味のプログラムに手を出そうとしています。
触れたことがある言語はCを少しとVBです。

基本、Windowsで動けばいいと考えて調べた結果、
Python、Java、VB.net、electron
の4つに絞りました。
また趣味で手軽にやるならPythonがいいかなとおもいました。

そこでですがPythonでは実装が出来ない、
または無理があることを教えて頂けますでしょうか。
スピードとかは気にしません。

Python3を始めるつもりです。

よろしくお願いいたします。
0688デフォルトの名無しさん
垢版 |
2020/10/05(月) 16:10:39.98ID:HmCvMg2v
コマンドプロンプトに
pip install tensorflow
pip install keras

と書き込んでkerasをインストールしたいのですが、インストールが終わって
import keras
をメモ帳に書いて実行してもうまくいきません
以下のようなエラーが出ます
Keras requires TensorFlow 2.2 or higher. Install TensorFlow via `pip install tensorflow`
0689デフォルトの名無しさん
垢版 |
2020/10/05(月) 18:24:54.80ID:r96rJxRD
a = []

a[3]="aaa"ってやるとエラーがでますが
自動で[None,None,None,3]みたいに入ってくれませんか
0690デフォルトの名無しさん
垢版 |
2020/10/05(月) 18:55:41.56ID:oiZVlclw
>>686
「とか」ってなんだ「とか」って

>無理があること
なんだったっけかな
こっちじゃない方のPythonスレで
仕様上どうしてもかゆいところについて先月あたり話題になってた気がする

あと、VBよりCが好き派なら
やめとけとしか。
0693デフォルトの名無しさん
垢版 |
2020/10/05(月) 20:36:49.31ID:deOPjAdK
>>688
ありがとうございました
解決しました
0695デフォルトの名無しさん
垢版 |
2020/10/05(月) 21:22:08.50ID:260iGAL2
>>689
dictionary使えばいいケースではないの?
foo = {}
foo[3] = “aaa”

どうしてもlistでやりたいなら要素数固定にして先にNoneで埋めるかIndexErrorを拾って自分で拡張するか
foo = [None] * 10
foo[3] = “aaa”
0696デフォルトの名無しさん
垢版 |
2020/10/05(月) 22:30:54.08ID:r96rJxRD
>>692
>>695
fooを定義するときにNoneで埋める数がわかってると先に埋めちゃいたいのですが
後々わかるパターンなので、その”最初だけ”をifで分岐するか
おっしゃる通りtryで拾うことにしていますね

実際は
a={"a":[],"b":[]}
みたいな感じなので
a={"a":{},"b":{}}
dictionaryで初期定義してやれば分岐やらエラー処理無しでできそうです
(ただ、a["a"][2]とかも参照したい(空なら別の処理)のでそのときにエラーを拾わないといけない?)

ありがとうございました
0697デフォルトの名無しさん
垢版 |
2020/10/05(月) 22:54:44.04ID:5CUE27i/
本日Pythonの勉強を始めた者です。
こんにちは。私はパイソンです。と出力するために

s="こんにちは。"+"私はパイソンです。"
print(s)

と入力したところ、2番目のダブルクォーテーションが赤く囲まれ、invalid character in identifierと表示されてしまいました。
どのように修正すればいいでしょうか?
Pythonのバージョンは(3.8.6)です。
0699デフォルトの名無しさん
垢版 |
2020/10/05(月) 23:20:47.19ID:5CUE27i/
>>698
ご回答ありがとうございます。
どちらも小文字になるように初めに「"」だけを続けて2つ入力してから文字列を作ってみたのですが、それでも同じエラーが出てしまいました…。
0700デフォルトの名無しさん
垢版 |
2020/10/05(月) 23:29:31.02ID:5CUE27i/
申し訳ありません。こちらの勘違いで、全ての"を全角で入力していたようです。
しかし、半角に修正して入力したところenterを押した瞬間消えてしまい入力が出来ませんでした。
0701デフォルトの名無しさん
垢版 |
2020/10/05(月) 23:51:08.72ID:5CUE27i/
連投になってしまいすみません。
恐らくプログラミング以前の問題だと思うので自分で調べ直してきます。
ありがとうございました。
0702デフォルトの名無しさん
垢版 |
2020/10/06(火) 03:31:31.99ID:PeElnWrx
VSCode で、Microsoft の拡張機能でも入れれば?

構文エラーぐらい、チェックしてくれるだろ
0705デフォルトの名無しさん
垢版 |
2020/10/06(火) 10:57:09.80ID:WvNF4GT4
>>690
>>704
返信ありがとうございます。

「とか」はまんまです。上2行以外と言う意味で、多分言われやすそうなスピードを例にあげました。

いろいろとサンプルコードを眺めたりしたのですが、
PythonはGUIにはあまり向いてないんですか。
ライブラリはすでに充実していて行けてそうだったんですが、
別のスレッドの記事はまだ見つけられないでいます。

何か情報お持ちの方おりましたら、引き続きよろしくお願いいたします。
0706デフォルトの名無しさん
垢版 |
2020/10/06(火) 10:58:09.18ID:WjG83btQ
>>696
内側のdictを造るときにkeyが無い時のdefault値を設定しておける
0707デフォルトの名無しさん
垢版 |
2020/10/06(火) 11:01:32.27ID:WjG83btQ
>>704
C#でGUI造るとき
Windowsformsが良いのかWPFが良いのかその他何があるのか
0708デフォルトの名無しさん
垢版 |
2020/10/06(火) 11:03:28.12ID:WjG83btQ
>>705
python 使う条件なら wxPython とか PyQt とか tkinter

C# を否定はしない
0710デフォルトの名無しさん
垢版 |
2020/10/06(火) 11:42:49.01ID:NZHVkPKE
>>707
WinFormsが簡単、WPFは必要な知識が多いので初心者が趣味でやるにはハードル高い

データ分析系とかPythonのライブラリ使う場合でもGUIはC#で作ってPythonのコードを呼び出すようにしたほうが簡単
0713デフォルトの名無しさん
垢版 |
2020/10/06(火) 14:02:04.49ID:t5HrXPx1
C♯からPythonコード呼び出すって、そんな事できるの?
APIとか使うんか?それこそ初心者にはハードル高すぎやしない?
0716デフォルトの名無しさん
垢版 |
2020/10/06(火) 14:08:48.87ID:/kiBHcQr
外部コマンド呼び出す程度のハードルを越えられないようならGUIアプリ作るのは厳しいかと
0717デフォルトの名無しさん
垢版 |
2020/10/06(火) 15:33:34.03ID:PeElnWrx
漏れは、Ruby スクリプト中でも、python を実行したりしてるけど

puts `python3 -c "print( 'a' )"`
0719デフォルトの名無しさん
垢版 |
2020/10/06(火) 16:23:50.59ID:JSNr4BMY
プロセス間通信してjsonとかでデータをやり取りするのがよくあるパターンかな。プロセス間通信を覚えると1つの言語に縛られなくなって、適材適所で特定の部分を書くのに得意な言語で書けばよくなるから開発が楽になるよね。
0721デフォルトの名無しさん
垢版 |
2020/10/06(火) 16:27:43.92ID:V+mkz8Jx
>>706
ありがとうございます
これは使えそうですね(配列にもあればいいのに。配列版defaultdictを作ればいいだけだとは思いますが)
d = {}
d[3] = 11
print(d[3]) # 11
print(d.get(3,None)) # 11
print(d.get("3",None)) # None
print(d.get(1,None)) # None

from collections import defaultdict
dd = defaultdict(lambda:None, d)
print(dd[3]) # 11
print(dd[1]) # None
0722デフォルトの名無しさん
垢版 |
2020/10/06(火) 17:50:20.92ID:khPgdw7M
配列版defaultdictはNone埋めの配列確保しとけばいいんじゃ
0724デフォルトの名無しさん
垢版 |
2020/10/06(火) 21:03:51.30ID:WdRdi4Vr
価格データ集めて価格.comみたいな安値表示するサイト作ろうと思ったけど
やること多すぎて無理だ
とにかく手動の手間がないほっといたら勝手に収益化できるようなお手軽サイトないかなあ
0726◆QZaw55cn4c
垢版 |
2020/10/06(火) 21:28:10.35ID:44oBE2pA
>>724
それ、とても使えるとおもいますよ
株価でそれをやってみてください
この株とこの株は、株価に相関がある、とかが使えそうです
0728デフォルトの名無しさん
垢版 |
2020/10/06(火) 22:00:33.84ID:1E+Iu7Xf
エンジニアの考えるサイトってほんとセンスねえよな
偏差値40の馬鹿が頭空っぽにして使えるサイトじゃないと安定した集客も利益も出ねえよ
■ このスレッドは過去ログ倉庫に格納されています

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