Pythonのお勉強 Part67
レス数が1000を超えています。これ以上書き込みはできません。
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。
★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
http://mevius.5ch.net/test/read.cgi/tech/1653225908/
〇前スレ〇 Pythonのお勉強 Part66
http://mevius.5ch.net/test/read.cgi/tech/1636970383/
次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ###
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured ↑codepadはpython3非対応なので消した tensorflow.kerasでadamでモデルフィッティングしました
いまいちなのでsgdに変えてチェックポイントから計算し直したいのですが、
単純に変えると発散してしまいます
どうにかしてせっかくadamでフィッティングしたものを利用する方法ないでしょうか? ideoneのPythonは
Python (PyPy 2.7.13)
https://ideone.com/YXtxfY
と
Python 3 nbc (python 3.7.3)
https://ideone.com/yEykmz ideoneのPythonは
バージョン2(無印)の方がdecimalは高機能。
https://ideone.com/ogyD7X
同じ指定でバージョン3ではオーバーフローしてエラーになる。
https://ideone.com/jeal98 回帰問題で最後にDense(1)の層を設けています
model.fitしてcsv出力すると、[[値]]という形になってしまいます
[[]]なしで出力するにはどうしたらいいでしょうか パッケージのみのインストールで(外部ソフトを使わずに)、CSVのデータを
SELECT * FROM CSV GROUP BY ID;
することはできますか? いっぱいあるなw
俺はMySQL使ってたわ
DBソフト使わないほうが汎用性あっていいかもな
どれがメジャーなんだろ 前スレのpyenvでハマってた人はpyenvの使い方をちゃんと調べた方がいい。
答えだけ書いておくと、pyenv local 3.8.12とすればそのディレクトリではpython3.8.12が使える。 FXなどマーケットのtickデータってmysqlとかで管理しないほうがいいでしょうか?
実際のチャートの表示は部分的ですが
たとえば1分間のデータで3年分だと
1576800レコードあります
そういうのに特化した管理方法などあるのでしょうか? leetcodeの一番最初のtwoSumのやつ
https://leetcode.com/problems/two-sum/
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
↑この部分が見慣れないから困ってる
まあ、int型として入れますよ、的な意味だとは思ってるんだが
これをこのまま自分のエディタにコピペして
List = [2,7,11,15]
target = 9
とやってみるとエラーになるんだよな
TypeError: list indices must be integers or slices, not type Google Colabでアニメーションを見るためのソースコードがあります。
from matplotlib import animation
from IPython.display import HTML
anim=animation.FuncAnimation(fig, animate, frames=len(s_a_history), interval=200, repeat=False)
HTML(anim.tp_jshtml())
これ、当然PCローカル環境では見れないんですが、ローカルでアニメーション見たいときにはどう記述すればいいでしょうか? 最後の行、タイプミス、正しくは
HTML(anim.to_jshtml())
です。 gdstkなるモジュールをpipじゃなくソースファイルからコンパイルされた方おられますか? gdstkなるモジュールをpipじゃなくソースファイルからコンパイルされた方おられますか? ちょっと調べたけど、データベースソフト使うようなことは簡単なことならPandasで処理するのが普通っぽい
それで合ってる? 任意の項目でソートするのに一時テーブル使った事があるな >>21
まあ主目的はそうかも知れんがソートや集計でDB使うのは別に変じゃない
import sqlite3
connection = sqlite3.connect(':memory:')
とかしてインメモリーでDB作れるし 出来るのはわかるけど、Pandasで済むことをわざわざSQLでやりたい理由がわかんないな。
大量データだったりしてPandasでやると遅過ぎるとかそういう特殊ケースはわかるけど。 >>14
Listにリストを代入したらListという名前のものが、type hintsのList(typing._GenericAlias型のオブジェクトだそうだ)から、単なる普通のリストになってしまう(上書きされる)から、
l = [1,2,3]
l[int]としているのといっしょでおかしくなってしまう。
素直にnumsとtargetに代入してsolution.twoSum(nums, target)で実行してみ。
というかあなたにtype hintsは早い気がする。もうちょっと基礎を固めた方がいいかと。 Pandasでgroupbyしたあとにそのままcsv_writer.writerowsすると、
" dt
id
112893131 2022-05-28 01:14:17.959048
117235633 2022-05-28 04:44:25.937787
117595341 2022-05-28 08:44:33.609629
124985419 2022-05-28 04:44:25.937787
126672345 2022-05-28 01:14:17.959048
... ...
969901237 2022-05-28 01:14:17.959048
978855671 2022-05-28 07:44:31.638705
979053384 2022-05-28 01:14:17.959048
989614658 2022-05-28 05:44:27.929561
998605384 2022-05-28 00:44:16.960893
[138 rows x 1 columns]"
と出力されてしまいます。
.iloc[i]をwriterowすると、
"dt 2022-05-28 01:14:17.959048
Name: (112893131), dtype: object"
となってしまいます。
どうしたらCSVのきれいな表として出力されるでしょうか? >>25
なんとなくわかった
>あなたにtype hintsは早い気がする。もうちょっと基礎を固めた方がいいかと。
自分ももっと勉強したいんだけど、ネット上の初心者コース終わったあとの先がわからないんだよね
どこで学べばいいんだ? import csvじゃなくてto_csv使ったらうまくいきました
お騒がせしてすみませんでした >>27
普通は書きたいもの書きながら自己進化していく
道具は最低限の使い方さえ覚えれば、あとは使うだけ >>12
レスありがとうございます。
pyenv調べてみます。 え?調べるってまだ配布元のREADMEよんでないのかよw どの言語にも限らずに公式ドキュメントを全く読まないマンがたまに出てくるな
英語で分かりづらいかもしれんけど、Chromeの日本語翻訳でだいたい雰囲気分かるぞ 昔と違って説明書一切付けないガジェット増えたしな。CHEATSEET.PNGとか付けたら読んでくれるかも 日本で言う楽々携帯が海外におけるアイフォンの立ち位置なんですが。
日本では中高生の間でアイフォンが人気なんですよ。
ITなんて全く向いていない国。 kotlinの公式は読みやすいけどJavaは本当にカオス ・塩野義製薬が週休3日制導入へ 来年4月、副業も解禁
・塩野義製薬が「週休3日」選択可能に 給与は『週休2日の8割』副業や学び直しを支援
・【フォーカス】サタケ/週休3日制 通年導入めざし夏季のみ試行中 交代制で水曜を休日に
・旅館なのに週休3日!?陣屋・若女将の常識を覆した組織改革
・“時代錯誤”から残業ゼロ、週休3日に! 鳥取の不動産会社が
レガシー企業からDX先進企業になれたワケ
・ネクスウェイ、週休4日制・1日3時間勤務選択できる勤務体系を導入
・日本初「週休4日制度」で、優秀な人材を採用するしくみとは? ?
ナレッジソサエティ久田社長に聞いてみた ・サイボウズ青野社長、「本業に集中しないから副業禁止」はあり得ない
・サイボウズでは、100人100通りの働き方が可能「多様過ぎるワークスタイル」が生まれた背景
・訪看、ケアマネ自宅で記録 IT活用で在宅ワーク・フレックス勤務
・パナソニックの社内ベンチャー「ゲームチェンジャー・カタパルト」で
事業化されるかもしれない注目の新規ビジネス
・ゼネコン鹿島、DX化で狙う建設業界の地殻変動
・NTTドコモ、建設業向けDXの新会社 コマツ、野村総合研究所などと共同で >>29
書きたいものがない人が進化するためになにかないですかね? こういうことできないかなー、って思ったらそれがやりたいことになるんじゃないの
それがないなら進化する意味がない 俺もやりたいことないからバイト始めたけどスクレイピングおすすめ 小説でも良いし音楽でも良い
自分が書きたいと思ったものを見つける事だ
人に教えてもらうものではない pythonに限らんけど
別に何がしたいわけではなくて
pythonを勉強してるんですっていうやつおるけど
ガッコーの勉強の延長線上なんだろうな
俺は時間のムダだと思う o2popperのコマンドラインでの使い方を教えてくれませんか? ヲタクの答えだろそれは
普通の人は仕事なんて嫌々やるもんだよ >>41
日頃何かにイライラしないならプログラマには向いてないから他の仕事考えた方がいいよ >>41
なんかプログラミングのバイトみたいなのを見つけちゃうと早いけど、
それが叶わない場合は、一旦Pythonの勉強から離れて色々なソフトウェア技術を見て回るのがいいんじゃないかな。
Pythonで始めるなんとか、みたいな本を検索してやってみたいものを探す、でもいいけど
他の趣味と結びつけてみる、という手もある。
もし無趣味な場合、趣味をどうやって見つけるかというのは、多趣味ですぐいろいろなことに興味を持つ自分には簡単なんだが、人によっては難しいらしいねー function annotationsって
関数に-> つけるやつ。
一般的なんかな。俺は最近知った あまりぐじゃぐじゃ書かないのがパイソニックだと思ってるけど共通ライブラリーとかだと書いてあったほうが使い方が分かりやすいとは思う 質問です。
pip install virtualenv --user
を実行したら、
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE.
というエラーメッセージが表示されました。
ネットで検索しますとwgetでダウンロードして、
ダウンロードしたファィル名を指定して
pip install [ファィル名]
で、インストールすれば良いと書いてあるのですが、
ハッシュがアンマッチになるのに、この対応で良いのでしょうか? >>54
oauthそのものの話ならそもそもスレチ >>55
補足です。
少なくとも、
この対応で良い場合があるみたいなのですが、
だとすると、何の為のハッシュチェックなのか?
問題ないのに何故エラーにするのか?
PIPのバグなのか?
思うのですが… printで進捗率を表示したいと思っているのですが、
たとえば1%ごとに普通に表示すると、100行になってしまいます
tensorflowのモデルフィッティングなどでは同じ位置にlossやaccuracyが上書きされるような形で表示されますが、
そういう表示の仕方を普通の人が利用できるしくみはないでしょうか? DB操作の非同期処理で疑問が。
同期処理の場合
書き込みAの処理中に、読み込みAと(順に)読み込みBの処理が合った場合
書き込みAが終わったら、読み込みA→読み込みBを同期的に処理する
非同期処理の場合
書き込みAが処理中であっても、(書き込みAにより編集される前のデータから)
読み込みA、読み込みB(処理の早い順)で非同期的に処理する
これって書き込みAなどのCRUD処理が秒単位で重くないと非同期処理にするメリットってそんなに無いような気がするのですが違いますか?
あと同時接続何百何万人規模ではなく、個人1人の使用目的の場合とか
同期処理で良いと思うのですが、そもそも非同期・同期の設定がある時点で
同期処理にも何らかのメリットがあるのかな、と思いました 書き込み一回10msだったとしても100人同時接続なら1秒待たされる可能性があるけど、全ては要件仕様次第としか言えぬ >>59
ググればいくらでも出てくるでしょ
ちょっとは調べようで
print(f'\r{i}', end='')
でもいいし
tqdmでもいいしcursesでもいいし
もしvscode使ってんなら出力じゃなくターミナルに表示しないと上手くいかないと思う >>60
> 同期処理にも何らかのメリットがあるのかな、と思いました
ボンクラでも問題が起きにくいと言う多大なメリットがあるので君は当分同期処理使ってなさい
てか同期処理で問題ないならわざわざ非同期にする必要はない お勉強するところだから無知な奴がいるのは当然なのに、
そういうの相手にマウント取る悲しい自称上級者w >>60
非同期処理はI/O待ちの間に他の処理をしたい場合に使う
同期処理はI/O待ちの間にプログラムがブロッキングしてもいい場合に使う
同期処理のほうがコードを書くのは簡単 VSCodeで作ったPythonプログラムって、exe化して配布または販売しても問題ないのかな?
マイクロソフトの許可いる? 販売自体は問題ないけど、exe化するとgplなコードもくっついてきたりするから、使用するライブラリ次第でコード公開も必要だよ 法律家じゃないからそれでOKかは分からん。
GPL3だと差し替え手段も要求されるから難しいかもしれんね。dll付きのライブラリとかはないのかな? なんでTensorflowのPython3.10版がいつまで経っても出ないんですtか? if 'aaa' in str or 'bbb' in str or 'ccc' in str:
をもう少しすっきり書けないものか any((ss in s) for ss in ('aaa', 'bbb', 'ccc'))
全然スッキリじゃないな… if re.search('aaa|bbb|ccc', s):とか スレチかもしれんが業務用のexe作成とかってどうしてるんだろうな endswithみたいに、str.contains(('aaa', 'bbb', 'ccc'))
みたいに書けるといいのに if 'aaa' == str or 'bbb' == str or 'ccc' == str:
だとしても雑多だし関数化する それはわかるよ
in相当のことを自前でせんとってこと #背景:歌詞データベースがGoogleに歌詞データを抜かれていると思い、英語の2種類のアポストロフイ(’‘)を駆使してモールス信号で歌詞内に
# REDHANDED(現行犯)とコーディングした珍事件。ちなみにgoogle は裁判で負けてるはず。
# https://japan.cnet.com/article/35138686/
#これを再現したい。
#モールス信号(REDHANDED)のトン、ツーを二つのアポストロフィで置換
morse = '.-..-.......--.-...-..'.replace(".", "’").replace("-", "‘")
#歌詞文字列(シナトラの「あなたはしっかり私のもの」を100回リピート)
lyrics = """
I've got you under my skin
I've got you deep in the heart of me
""" * 100
new_lyric = ""
#モールス信号のプレースホルダ
place = 0
for letter in lyrics:
if letter == "'":
letter = morse[place]
place += 1
if place >= len(morse) -1:
place = 0
new_lyric += letter
#もっとPythonぽくしたいですね。。。 意図としてはanyを使うのがいいんだろうけど
違う意味のinが似たような形で出てくるから異常に読みにくくなるよね
このケースは何を使うにしても関数化は必ずやる >>87
こんなのあるんだ
おしえてくれてありがとう >>85
place = (place + 1) % len(morse)
で後の if は不要 tempsum //= 10
これ //= なんなのか全然わからない
途中の
if l1: tempsum += l1.val; l1 = l1.next
の ; とか .val とかも全然わからん
こういうのググっても出てこないんだよなあ
ゼロから始めるLeetCode Day42「2. Add Two Numbers」
https://qiita.com/KueharX/items/4c2734a5d0b5db87f1b3 >>90
もちろん要る訳だが今回の趣旨は一見ばれないウォーターマークを入れることだから
そういうのは気にしなくても良いのでは >>55
関連の質問です。
wget 「virtualenvダウンロード先URL」
を入力したら
-bash: wget: command not found
になりました。
それで
brew install wget
を実行したら、
途中で
「"javac"コマンドラインツール使用するには、JDKをインストールする必要があります。
このJava Developer KitのダウかロードWebサイトにアクセスするには、"詳しい情報…"をクリックしてください。」
というダイアローグメッセージが表示されました。
それで
[詳しい情報…]ボタンをクリックすると、
ブラウザに「http://get.adobe.com/flashplayer/」のホームページが表示され
Access Denied
You don't have permission to access "http://get.adobe.com/flashplayer/" on this server.
と表示されました。
どうしたら良いのでしょうか?
最終的にやりたいことは、vartualenvのインストールです。
そのためにwgetが必要であれば、まずwgetをインストールしたいのですが…
OSはMacOS 10.12.6です。 >>95
OSが古すぎていろいろ他にも困ること多いだろうから
自分で解決できないならOS更新した方がいい
アポもユーザコミュニティも基本最新の2世代前までしかサポートしない >>89
勉強になりました、ありがとうございました >>95
wgetはjava不要だよ
wgetが依存しているその他のライブラリに引きつられて余計なパッケージまで更新しようとしてるんじゃないかな
brew install openjdk
で解決するかも >>96
>>98
レスありがとうございます。
brew install openjdk
をやってみましたら、
OSバージョンが古すぎるって怒られました(^^);;
OSをバージョンアップして再トライします。 >>85
from itertools import chain
#(略)
ar_lyrics = lyrics.split("'")
morse *= (len(ar_lyrics) + len(morse)) // len(morse)
new_lyric = ''.join(chain(*zip(ar_lyrics, morse)))
メモリ使用効率や速度等ちょっとマシなはず >>85
p = 0
new_lyric = ctypes.create_unicode_buffer(lyrics)
for n in range(len(new_lyric)):
if new_lyric[n] == "'":
new_lyric[n] = morse[p]
p = (p + 1) % len(morse)
print(new_lyric.value) >>100,101
itertoolsのchain,*アンパック、c関数ライブラリーも含めて大きな気付きになりました、ありがとうございます。
予め歌詞をアポストロフィでsplitして、必要な分だけ連結したモールスと
zipする方法は思い付きませんでした。
zipの要素数の長さを「短い方に合わせる」という特性も効果的に使えるのは特に、
勉強になりました。m(_ _)m str とか bytes とかが immutable ?
hoge = 'abc'
hoge[1] = 'x' ← エラー
fuga = b'\x00\x01\x02'
fuga[1] = '\x11' ← エラー
これ回避する方法は原則的に無いのかな
ポインタでごにょごにょしたら怒られる? トリッキーにやると後で何したか判らなくなるので、自分が思う素直な実装が一番
1. アポストロフィの位置のインデックスを作る
2. コード順インデックス順にアポストロフィを置換する
基本方針はこれで、インデックスの作り方、置換の方法をpythonっぽくする pythonで
1文字=4byteとか(str)
1文字=1byteとか(bytes)
を前提として良いのかなといつも不安になる bytearrayとしてなら任意に操作してもいいよね
でないとバイナリな通信やファイルフォーマット扱えないし
strとの変換はしないか失敗する前提にするだけ >>103
普通の文字列なら
一回配列に変換してから、指定箇所の文字を変えて再度結合すれば回避できる
(少し回りくどいけど)
https://ideone.com/45RBfs 'abcd'.encode() -> b'abcd'
b'abcd'.decode() -> 'abcd'
strは内部形式でバイト数とかは考えない
bytesという具体的な型にエンコードして操作する
終わったらデコードしてstrに戻す ctypes使うときに比べてパフォーマンス落ちる気がするんですよね
ctypesが速いという保証もなさそうだけど 連結リストという概念を初めて知ったんだけど
pythonには標準でくみこまれてないんだよね? ないね
標準化しても汎用性が低いし、仮に挿入削除が多くても、実環境で性能測定したらふつうの配列のほうが早かったってのはあるあるなので、用意されなかったのかも file1.py file2.py
とあり、file3.pyで、
import file1
もしくは
import file2
とします
1と2を切り替えるのは3のファイルの中身を書き換えることになりますが、
これをfile4.pyで行い、file3.pyでは
import file4
としたいです
file4.pyに
import file1
と書くだけではfile3.pyにfile1.pyが読み込まれません
どのように記述したらいいでしょうか >>119
それぞれに名前空間があってimportでどうなるか考える
https://docs.python.org/ja/3/tutorial/modules.html#packages
# file4
from file1 import *
ただfile3からはfile4.xxxでアクセスすることになるから
import file1と同一ではない >>119
__init__.pyとか使ってやった方が管理しやすそうだけど
文字通りやるならこうかなたぶん
【file1.py】
var="File 1"
【file2.py】
var="File 2"
【file3.py】
from file4 import fn
print(fn.var)
【file4.py】
import file1 as fn
>> import file3
#-> "File 1"
https://colab.research.google.com/drive/1D4AKjHtj_KVasJ_nwjZ1OAp-kDY7iYuH >>118
調べたらこういうのがあったんだが
https://towardsdatascience.com/python-linked-lists-c3622205da81
ページの一番最後にコードがまとめてあるけど
66行目の return self って、流れ見ると、return self.tail が正しい気がするんだがどうだろう?
初心者だから正直良くわからん ミスだと思う。
コメント欄があるみたいだから教えてあげたら >>118
>仮に挿入削除が多くても、実環境で性能測定したらふつうの配列のほうが早かった
そりゃ、配列の大きさが 1 万程度の比較的小規模な場合なんでしょ?そんな性能比較なんて意味ないですよね… 意味ないかどうかは、一万未満で早くしたいのか、100万件以上のときだけ早くしたいのか、開発者次第だから分からんね 私の環境ではtensorflow.python.keras.layersにBatchNormalizationが入っていないのですが、どうやったら入れられますか? WARNING *** OLE2 inconsistency: SSCS size is 0 but SSAT size is non-zero
これ意味わかりますか? あるシーケンシャルデータが
0
1000
1000
1000
10
1000
1000
5
4
1000
1000
1000
って配列があったときに10以下を切れ目にグルーピングして二次元配列作りたいんだけど、ワンライナーで書く方法ある? 何故かMemoryErrorになる
もう一度やるとならなかったりする
メモリなんか有り余ってるのに #背景:南北戦争の時代に使われていた暗号円盤(Cypher Disk)を再現したい。
# 下の画像のように外部の車輪を回して中身のアルファベットを指定する可変的な暗号機械にしたい。
# https://ja.wikipedia.org/wiki/%E5%8D%97%E5%8C%97%E6%88%A6%E4%BA%89%E3%81%AE%E4%BF%A1%E5%8F%B7%E5%8F%B8%E4%BB%A4%E9%83%A8#/media/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:UnionCipherDisk.nsa.jpg
import string, random
#内側の車輪を大文字のアルファベットで生成
inner_alph = list(string.ascii_uppercase)
#画像の通り、文字列tionとingの入力の手間を省くキー(他のキーと長さが異なるので注意したい)。スペース追加。
inner_alph += ["TION","ING"," "]
#外部の数値車輪の定義
outer_num = []
while len(outer_num) <= len(inner_alph):
#外部の車輪は紙に書きやすい、1と8のランダムな羅列。桁数は1から四桁で生成。
number = "".join((random.sample(["1","8"]*5, random.choice(range(1,5)))))
if number not in outer_num:
outer_num.append(number)
# 次に車輪を回転させて、可変性を持たせたい。外部の車輪の数字をランダムに選ぶ(昔の黒電話のダイヤルのイメージ)。
index_letter = random.choice(outer_num)
#外部の車輪を回転。時計の針がずれるように、インデックス文字以降が後半にappendされる形にしたい。
#イメージ:http://inventwithpython.com/cipherwheel/
shiftnum = outer_num.index(index_letter)
outer_num = outer_num[shiftnum:] + outer_num[0:shiftnum]
#極秘暗号表と早見表を保存
crypt_dict = (dict(zip(inner_alph,outer_num)))
crypt_cheatsheet = (dict(zip(outer_num,inner_alph)))
#print(crypt_dict)
##メッセージは以下の通り
message = "ENEMY INCOMING FROM NORTH"
cryptedmessage = []
place = 0 #暗号生成開始
while place <= len(message)-1:
#tionとingに対応するため、文字列を4文字先読み
future_string = message[place:place+5]
#あまりスマートではない暗号化処理と先送り処理
if future_string.startswith(("TION")):
cryptedmessage.append(crypt_dict["TION"])
place += len("TION")
elif future_string.startswith(("ING")):
cryptedmessage.append(crypt_dict["ING"])
place += len("ING")
#一文字づつ暗号化
else:
cryptedmessage.append(crypt_dict[message[place]])
place += 1
#暗号と早見表を送付
print(cryptedmessage)
for crypted_num in cryptedmessage:
print(crypted_num + ":"+ crypt_cheatsheet[crypted_num]) >>134
壊れてるんですか?
壊したつもりないのにorz tensorflowでload_modelのあとの.compileって要りますか?
最初にモデル構築したときにコンパイルしてたら要りませんか? sys.argv[1] があればそれを返してなければ別に決めたdefaultの値を返す
というのをtryを使わずにシンプルに書くには? sys.argv[1] if len(sys.argv) > 1 else あ if条件を後付けできたっけ? と一瞬見えたけどpythonの三項演算子か
文章として読めるくらい自然
誰だ最初に cond ? true val : false val の書き順を考えた奴は >>138
(sys.argv.__getitem__(slice(1, 2, None))+['default value'])[0] OpenAI GymのAcrobotの最短ゴールステップ数はいくつですか? >>136
マジレスすると今の内にデーター救出してファイル作り直した方が良いぞ。
zip+xmlだから手で直せない事も無いが、仕様書は
英語で6000ページ程あって死ねる。 vscodeで書いてる人いる?
関数名単位で折り畳んでるコードの途中を書き直してると
なにかのタイミングでそこ以下の全折り畳みが勝手に開いちゃうんだけど
これ設定でどうにかならないのかな
たぶん書き直し中の意味なさない文字列にpylanceとかが反応してるんじゃないかと思うんだけど… excelのバグでオブジェクト移動すると壊れることがあった
zipにして解凍して手動で修復しないと戻せない seleniumでログイン維持した状態で色々試してたら複数の同じidでのログインが確認されましたって
サイト側で出て、終了はquitで終了させてるんですけど、quitだとちゃんと終了出来ないんですか?
またちゃんと終了させるにはどうすればいいのでしょうか? >>136
>>143
HDD(SSD)が壊れ始めてるかもなω win10のcmdでエスケープシーケンスで色を付けたら、
黄色がどう見ても黄土色なので、代わりにESC[38;5;226mを使おうとすると、
うまく行くソフトと無視されるソフトがある
条件は何も変わらない筈なのに何が邪魔してるんだろう cmdの色付けはもうescの時代じゃないぞ
api使え termcolorだと拡張に対応してないのでやっぱりyellowは黄土色なんだよな
やってることは同じ lambda式とか自分で書いてて頭の中から出てくる気がしない
例えば↓とか
リスト ln と数 n を受け取って
lnからn より大きい個数を返す関数number_of_big_numbers()
for文やwhile文を用いずに、filter を用いて定義してください
def number_of_big_numbers(ln, n):
return sum(map(lambda x: 1, filter(lambda x: x>n, ln)))
やってることはわかるけどfor文、while文書かないって制約ないとこんなの作らないよね? Pythonの場合ほとんど内包表記で書いた方が短くなるからmap,filterを使うことは少ないな。
でも、慣れたらわかるよ。
len([v for v in ln if v > n])かなあその例だったら。 個数なんだからlenだな
ネストしないなら内包表記でもフィルターでも大差ない
むしろフィルターの方が直感的 >>> import numpy as np
>>> i = np.array([3,5,1,2,6,9,8,7,0,4])
>>> i[i>3]
array([5, 6, 9, 8, 7, 4])
>>> len(i[i>3])
6 >>157
そうかなあ?慣れだと思うけど
メソッドチェーンでfilter,map書ければわかりやすいけど Pythonの記法だとどっちもどっちな気がする。
自分は複雑なmap/filterはむしろ内包表記に変形して理解するわw filter(lambda x: x>n, ln)
[x for x in ln if x>n]
内包表記だとlnが埋没してしまう
式1 for 式2 in 式3 if 式4
という構文が複雑
式1 if 式2 else 式3 for 式4 in 式5
だともっと複雑 処理対象のリストが中間に来ると、ネストした時に
[ ... in list ...]
[ ... in [ ... in list ...] ...]
[ ... in [ ... in [ ... in list ...] ...] ...]
こんな増え方をするので一気に読めなくなる [x for x if x>n in ln]
という語順でif節は省略可能、みたいな文法だったら、
ネストしても文章になってた筈 通常 for のネストは内側優先だが
内包 for のネストは外側優先なのか map/filterでも、あんまりややこしいのは1つの式でなく適度に分割した方がいいと思うけどね。
ifが無くても内包表記のネストが3段とかになるとそもそも相当読みづらい
内包表記でもジェネレーターの内包表記にしておけば余計なリストを作らずに済むし
JSとかRubyのln.filter(関数).map(関数).reduce(関数)のスタイルは圧倒的に読みやすいと思うけどね。 内包表記は[x for x in ...]の先頭のxがxじゃない時が本来の使い方で、
x for xでifを付けるなら、それはやっぱりフィルターだと思う
フィルターならフィルターだと書いた方がlambdaがあったとしても読みやすい
癌はmapで、これはどう書いても内包表記の方が優れてる
単純なmapでもそうだし条件が付くならなおさら 内包表記って必要なの?
処理が少しでも早くなるならいいけど、
見辛い、理解しづらいってなんの得になるの? 複雑な内包表記を書くときは分割するかforループにしろ 内包表記でもインデントできるので、可読性をあげたい時は使ってみてください mapがうんちなのは本当になんとかしてほしい
デフォルトエンコーディングをutf8にするとかどうでもいいから map(int, float_no_list)みたいなときしか使わないな
この場合は、
[*map(int, float_no_list)]のほうが、
[int(v) for v in float_no_list]のより短いから使うだけ
打つ量を減らしたいだけで読みやすさで選んでないな
Jupyter上で試行錯誤が多いから。あとでちゃんとしたコードにするときに読みやすさは考える >>155
ちなみに元の例に戻ると、filterを使えと書いてあるのだから、
len(filter(lambda x: x>n, ln))
かね。filter後にわざわざmapして1にしてsumする意味が感じられない。
mapで1にするなら、sum(map(lambda x: 1 if x > n else 0, ln))かな。
こっちは応用が効く場合がある(else -1にすればnより大きい個数とn以下の個数の差が求められるとか)
他にはsum(map(lambda x: int(x > n), ln))とかもあるけど技巧的だね >>174
>>174
len(filter(lambda x: x>n, ln))
だと
TypeError: object of type 'filter' has no len()
になっちゃう ジェネレータにlenが無いのは手抜きではなくて本質的な話だよな len(list(filter(lambda x: x>n, ln)))
これでいけると思う
何かフィルターした後のリストの長さってのがぱっと見でわかるから個人的には内包表記よりこっちのがいいな
自分が内包表記が苦手なのもあるけど def number_of_big_number(ln, n):
f = filter(lambda x: x>n, ln)
m = map(lambda x: 1, f)
return sum(m)
よく考えたらこれでよくね? リストはミュータブルなのにa, b = [1, 2, 3]; b = []; len(a);len(b)で3, 0となるのは何故なのさ? a = b = [1, 2, 3]; b = []; print(a, b)
a = b = [1, 2, 3]; b[:] = []; print(a, b) map(lambda x: 1,...はメモリ上へのlist化をさける苦肉の策だろうけど
前提条件なんか無視してsum(1 for x in ln if x > n)したほうが良さそう
>>179
なぜ両方空にならないのかという意味であれば、同じ参照でも変数は個別に存在し
単純代入は新しい参照先の割り当てに過ぎず、元の参照先を編集してる訳ではない a=[1,2,3]
b=a
print(a,b)
b=[]
print(a,b)
b=a
b.append(4)
print(a,b)
b.pop()
print(a,b)
>>[1, 2, 3] [1, 2, 3]
>>[1, 2, 3] []
>>[1, 2, 3, 4] [1, 2, 3, 4]
>>[1, 2, 3] [1, 2, 3] sum(map(lambda x: x > n, In)) なるほどPythonic、ブールは整数の派生型だったな。sum(map(n.__lt__, ln))で済む事もあるか ああ分かったよ参照地の値渡しってこんなんだったな
参照渡しとごっちゃになってた
ややこしいなーおい sumレベルだと、reduceする意味ないよな、長くなるだけで
functools.reduce(lambda a, x: a + int(x > n), ln) とは書けるが
もっと特殊な集計をしたいのならreduceは有り得そうな気がするが sum(map(lambda x: x > n, In))
は、
sum(x > n for x in ln)
にもできるね。このforはfor「文」ではないしね 敢えてリスト内包で書いてみる
#ABCDEFGHIJKLMNOPQRSTUVWXYZ
#HOGEFIJKLMNPQRSTUVWXYZABCD
#上みたいにキーワードHOGEをもとにアルファベットを置換する暗号を作りたい
#まず暗号表の一番最初にHOGEと記載し、残りはHOGEの最後のEから続く形で
#FGHIとアルファベット通りに暗号表を埋め、Zに到達したらアルファベットの
#最初から埋める(ABCD...)。重複に注意したい。
import string
alphabets = list(string.ascii_uppercase)
key_string = list("HOGE")
cypher = []
cypher = key_string + [i for i
in alphabets
#リスト内包でキーワードの最後の文字Eの後にあり、
if alphabets.index(i) > alphabets.index(key_string[-1])
#かつキーワードに含まれていない文字のリストを作成
and i not in key_string]
#残りのアルファベットで後半を埋める
cypher += [i for i in alphabets if i not in cypher]
改行しても読みにくいですね。。。 itertools.repeatとか使ったら1行の内包表記で書ける気がするけどな。 key_stringの重複排除も無理やりOrderedDictで実現しといた
import string
import itertools
from collections import OrderedDict
key_string = [*OrderedDict([(c, None) for c in 'HOGE']).keys()]
([*key_string] + [c2 for c2 in itertools.dropwhile(lambda c: c <= key_string[-1], string.ascii_uppercase * 2) if c2 not in key_string])[:26] i = alphabets.index(key_string[-1])
alphabets = alphabets[i:] + alphabets[:i]
cypher = key_string + [c for c in alphabets if c not in key_string] >>192
すごいスマートです
どれも勉強になりますm(_ _)m key_string = ‘HOGE’
alphabets = ‘’.join(reversed(ascii_uppercase.split(key_string[-1])))
cypher = key_string + ‘’.join(x for x in alphabets if x not in key_string)
ネストした内包表記ほどじゃないけど
メソッドチェーンで書けないからかなり読みにくい
実際作るなら各行を関数化して関数名で意図が伝わるようにする >>192のindexとsliceで入れ替えるほうがPythonっぽいかも
splitしてからreverseしてみたいに考えるのは他の言語の影響を強く受けてる Pediatric Autoimmune Neuropsychiatric Disorders Associated with Streptococcal Infections UnRAR.exe でrarの中身のリストを取ってくる時、sjisに無い文字が?になってしまう
7za.exe はutf-8で出力するモードがあって問題は起きないけど、UnRARはsjis固定ぽい
詰んでる? よく判らんのが、コンソールに表示させるだけなら正しく表示される
ファイルにリダイレクトさせると化けてるというか?に置き換えられてる
恐らくそれと同じ理由で、subprocess.PIPEもおかしくなる for
try:
処理
except:
continue
finally:
後処理
みたいに書くと、finallyを無視してcontinueしてしまうのでは?と思ったけど
そんなことは無かった 文字列のリストがあって、先頭が#で始まっていない最初のものを取り出す
ループを使わずに書くには? そんなのループでいいけど
next(s for s in L if not s.startswith('#')) >>204
[w for w in list if not w.startswith(“#”)] 該当するものが無かった場合、デフォルトを設定しておいて、もしデフォルトだったら、とするか、
普通にエラーにしてtryで捕まえるのとどっちがいいだろう
エラーが出ないようにいろいろ配慮して書くより、何も考えずにエラーにする方が
python的な気がしてきた 例外処理と言っちゃうと違うんだよな
予期せぬエラーではなく、正常系の処理でも積極的に例外を使う
関数の戻り値を見て判断、みたいなことを避ける >>198
7-zipのGUI 版の7z.exe については、以下に書いた。
773 が漏れ
【.cmd】 バッチファイルスクリプト %14 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1597442426/771-775
https://mevius.5ch.net/test/read.cgi/tech/1597442426/836
ただ本来、7z.exeはコマンド用じゃなく、画面操作用だから、
必ず、解凍先フォルダは空の状態で始めて下さい!
そこにファイルがあると、同じファイル名の場合に、
上書きしますかとか聞かれて、コマンドが止まる
だから本当は、7-zipのコマンド用実行ファイルを使った方がよいかも 7zaに関しては困ってなくて、7zaと同様のことがunrarでできなくて困ってた
7zaではなく7zを使えばそっちはrarにも対応してるのでunrarは不要になる
7-Zip Extraコンソール板の最新のものでもrarに対応してないのが問題
理由がよく判らない class TestClass:
pass
a = TestClass()
a.member = 1
print(a.member)
これは特にエラーもなく動く
memberはどこに記憶されとるの? Ruby, JavaScript で言う、特異オブジェクト
そのインスタンスにだけ、外からmember が作られるが、
別のインスタンスには、memberは存在しない。
クラス内で作られたものではないから
a = TestClass( )
b = TestClass( )
a.member = 1
print( a.member ) #=> 1
print( b.member ) # エラー。memberは存在しない class定義というのは、形をきっちり決めるものではなくて、
その中で変数を作ればそれはあるし作らなければ無いというだけの話か
__init__() で作ってもいいし、生成後に作ってもいい
このクラスのメンバは以下の通りです、みたいな定義がどこにも無いから変だと思った >>215
パターンマッチできたし値とエラー情報をタプルで戻すのもあり
ケースによるけど 50レスぐらい前で話題になってた、メソッドチェーン風のmap/filterは、toolzのpipeを使えばできそう。
>>> from toolz.functoolz import pipe
>>> import math
>>> pipe(range(100), lambda it: filter(lambda v: int(math.sqrt(v)) ** 2 == v, it), lambda it: map(lambda v: v * 100, it), list)
[0, 100, 400, 900, 1600, 2500, 3600, 4900, 6400, 8100]
これだとちょっとややこしいから、filterやmapをラップして、高階関数化しておく。
>>> def filter2(func):
>>> return lambda it: filter(func, it)
>>> def map2(func):
>>> return lambda it: map(func, it)
>>> pipe(range(100), filter2(lambda v: int(math.sqrt(v)) ** 2 == v), map2(lambda v: v * 100), list)
[0, 100, 400, 900, 1600, 2500, 3600, 4900, 6400, 8100]
んで、このfilter2, map2と同じものはtoolz.curriedの中にあるfilterやmapで用意されているっぽい。 リンク貼れないんですが、
AlphaGoを模したオセロAIを作る(2): RLポリシーネットワーク
というのを検索して出てくる記事で、
学習できないという結果があります
なぜできないか、どう改善すればいいかわかりますか? スレが適当でないし記事への質問なら投稿者に聞けば良いのでは? オセロなんてある程度打ったら残りは完全読みだから、
計算力的に完全読みできるようになるまでの形勢判断になるんだろうな >>222
toolzのpipeじゃなくてsspipeかpip install pipeで使えるpipeパッケージ使ってみて
特に後者がオススメ >>224
検索してみたけど、投稿者がお手上げしてるぞw alphaGOはもう古い手法だし作り方はそのへんに溢れてるんじゃないの?
昔論文読んでオセロで実装したことあるけど普通に動いたぞ
RLポリシーがおかしいのか? デュアルネットワークのモンテカルロさんはセルフプレイの考慮時間が長くてイライラする >>226
https://pypi.org/project/pipe/
これか。良さげだね。内包表記に限界を感じたら使ってみるよ。
有益な情報をありがとう! pythonってインスタンス作るときにnewキーワードがないから
クラスと関数の見分けが付かなさそうなんだけどどうしてんの? そんなに見分ける必要ある?名前を大文字で始めるみたいな習慣はあるけど コンストラクタ(一種の関数だ)と普通の関数を区別する必要ある?
普通の関数の中でコンストラクタ呼んでて戻り値がクラスのインスタンスだったら実質似たようなものではないか。ファクトリーパターン。
大事なのはコンストラクタと関数それぞれのドキュメントと、type hintじゃない? 戻り値が返るような自然さで生成されるクラスオブジェクトならいいけど、
なんかとりあえず空のものをnewして、それをその後ずっと使い倒す、
みたいな流儀がオブジェクト指向にあって、それだとどれがnewか知りたい Wenzel が元気すぎてpybind11の後継でnanobind というができてるそうな >>236
>>236
> どれがnewか知りたい
何のために? >>236
どれがnewかわからないと破綻するって設計がアレじゃ… Python以外ほとんど触ったことないけど、newの所在が分かって嬉しいのってc++のメモリ解放ぐらいじゃないの? 普通の言語だと
a = b.method() ← あっ、bはクラスなんだな って分かる
a = new b.class() ← あっ、newがあるからbはモジュールなんだな って分かる
newがないとクラスなのかモジュールなのかすら分からない
組み込みならともかく人が作ったやつだと八方塞がり pythonの分かりやすいパッケージ体系でわざわざコード汚さんと分からんてまじですか…
javaとか他言語なんも使えなさそうなレベル低い人に合わせてもしょうがない baka = aho.shine
gomi = Unko.manuke()
ちゃんと書け ところで
var = func()
って書けるけど、これ何かに使える? ただ書けちゃうだけ? >>246
var = func()じゃあ単に引数なし関数を呼び出してるだけじゃない?
func = some_concrete_func
みたいなのはある
デザインパターンでいうストラテジーパターンかな?たとえば、ドローツールなんかで、いま選んでいるツールに応じてマウスイベントを処理するときに、
ツールが切り替わったとき(この場合は鉛筆ツール)に、
ondrag_func = pencil_on_drag_func
と代入しておけば、マウスイベントのハンドラでは、ツールのことを知らずに、ondrag_func(x, y)とかして呼び出せる
コールバック、関数ポインタ、言い方や似たような概念はいろいろあるけど、そこそこよく使うものだね docoptとargparseどっちがいい?
あるいはもっといいのある? docoptは、いちいちドキュメント書くのー?と敬遠してたけど、もっそい楽だった
簡単なオプションなのに最低限書かないといけないことが多い、みたいなこともなく、
シンプルなら定義も本当にシンプルで、それでいてエラー判定なんかも実装される
何かarg一つでも取るなら無条件でdocoptでいい感じ os.environ['CUDA_VISIBLE_DEVICES']の質問です
無効にしてCPUを使うときは-1を使うのはいいんですが、
PCにIntelのGPU0とNVIDIAのGPU1がついていて、
GPU1のほうを使いたいと思っています
この場合='1'にすればいいんでしょうか?
それともデバイス番号とタスクマネージャーのGPU番号は一致しないことがあるのでしょうか? 仕事で末尾のセミコロンが無いというエラーが増えたのは絶対pythonのせい >>252
基本的にはそうだったはず
CUDA入れてるならnvidia-smiコマンドがインストールされてないかな
それをコマンドラインから打てば確認できたと思う >>255
NVIDIAのGPU1しか認識されてなくて、そっちがDEVICE0でしたorz
でも便利なコマンド教えてくれてありがとうございました >>255
cudaとpysparkって併用したいんだが。
良い方法ない? s=b"\x81y"
s.decode("sjis")
はできましたが
s="\x81y"
を動的にバイト列に変換して
s.decode("sjis")
したいのですがどうしたらいいでしょうか すでにエンコード済みかつbytesではないものを動的にbytesに変換する問題>>258
は解決しませんでしたが
やりたいことはres=requests.get先のウェブページの文字列取得で
すでに\x81yとなっているので困っていましたが
res.textではなく、res.contentとすることで解決しました
が、>>258は気になるので無理かどうかだけでも知りたいです さあ、われわれは下って行って、そこで彼らの文字コードを乱し、互に言葉が通じないようにしよう
Genesis 11:7 >>260
ばっちりできました ありがとうございます
s="\x81y".encode('latin-1')
print(s)
print(s.decode("sjis"))
>>b'\x81y'
>>【 >>257
PySparkのことをあんまり知らないんだがこれってCUDAと競合するようなものなの?
あんまりそうは見えないんだが おま環でしょうか
<div class="message">要素の有り無しに一貫性がないような・・?
要素がネストされているからかと思いきやそうでもなさそうだし
なぜでしょうか
import requests
from bs4 import BeautifulSoup as _soup
url="https://mevius.5ch.net/test/read.cgi/tech/1653540315/"
bs=_soup(requests.get(url).text, "html.parser")
posts=bs.select(".post")
for post in posts:
_print(post) 5chの仕様なのですか?
例えば、
headersやipアドレスから5ch側が何かしらレスポンスに反映していたり
スレのソースコードとhtml.parserの相性が悪いとかそういうことではなくて?
bs4で意図した取得ができない5chの仕様とは具体的に何でしょうか >>266
あとそもそもですが、仮に自分が「これは5chの仕様だな」とわかっていたら
答えがわかっているので質問自体していないと思いますよ
ちなみにソースコードを手動でコピペして成型して
<div class="thread"><div class="post"></div>・・・・</div>
の部分だけをbs4したら上手くいきました ちょっとやってみたけど普通に見える
なにがおかしいの? >>268
普通に見えるとは、
エラーもなにも出ずに該当のレス分だけ再帰できた、ということではなく
該当レスすべてclass="message"のdiv要素も取得できた、ということですか?
自分の場合はprint(post) の結果が
<div class="post"><div class="meta"></div></div>で終わっているものと
<div class="post"><div class="meta"></div><div class="message"><span class="escaped">
のようにmessageまで取得できるものがあります
こういう感じです
https://i.imgur.com/9rhTBbp.jpg
改めて手動ソースコピペやってみましたがなぜかできませんでした
(簡単なdomならば意図した通りに取得はできます) 私の環境では全部のpostにmessageがありますね >>270
自分のところではやはり消えてしまいます
そして進展があり、最小構成で再現できました
html='''
<div class="thread">
<div class="post">
<div class="meta">
<span class="name"><b>名前1</b>ワッチョイ<b></b></span>
</div>
<div class="message">
<span class="escaped">レス1</span>
</div>
</div>
<div class="post">
<div class="meta">
<span class="name"><b><a href="mailto:sage">名前2</b>ワッチョイ<b></a></b></span>
</div>
<div class="message">
<span class="escaped">レス2</span>
</div>
</div>
</div>
'''#.replace('<b><a href="mailto:sage">',"<b>").replace("<b></a></b>","")
おそらく<b><a href="mailto:sage">名前2</b>ワッチョイ<b></a></b>の部分
なぜかmailto:sageのときは<b></a></b>で挟み込んでいます(この部分を取り除いたらmessageのところが取得できました)
.replace('<b><a href="mailto:sage">',"<b>").replace("<b></a></b>","")を切り替えるとmessage取得できました。
(同じようにreplaceしたres.textはなぜかできませんでしたが・・replace漏れがあっただけかもしれない) 5chがぶっ壊れたhtmlを返してくるんですね
それだとバージョン違いとかで動作がおかしいことはありえる
parserをhtml5libにしてみるのがいいかもしれません .replace('<a href="mailto:sage">',"").replace('</a></b>','</b>')
にしたらいけました。
>>272
>html5lib
なるほど
bs=_soup(res.text, "html5lib")
いけました
ありがとうございます! pythonのライブラリやメソッドが何の例外を出すかって調べる方法で一番簡単な方法ってありますか? >>274
インタラクティブシェルで
>>> help(ライブラリやメソッド)
ちゃんとしたIDEなら同等のことやってくれる pythonがcoreダンプで止まった。
pythonって止まる時、エラーコードを吐いてとまるから、直すの楽チンじゃん。
「え、coreダンプ」ってなるよね。
色々みたら、無限ループに陥って止ったらしい。
フー、久しぶりのディバッグって感じw >>275
ありがとうございます
機械的なチェックではなくドキュメント頼みになるんですね…
vscodeでos.statは例外出すよなあとか思って調べてて、osモジュール自体OSError返すってドキュメントに書いてあったけど、statからはそんな説明出てこなかったから気になってました
エラー出すとか言いながらos.path.existsはディスクエラーのときにfalse返すみたいだから厄介だなあとかも思ったり >>277
そこはしゃーないね
静的解析も限界あるしJavaみたいな検査例外じゃないと
公式なら記載漏れはないはず
>>278
想定してへん例外まで捕捉したらあかん なにかに処理を投げて待つときは
正常時、想定異常時、例外(デバッグ用)の3つを書きたい >>279
握り潰すのはダメだが
想定される例外はそれなりの処理して
想定されてない例外はそのままthrow(raise)すれば良いだろ 自分が想定してなかった例外をそのまま上流に移譲しても上流はもっと想定しようがないがな。
そういうのはもうpanicでいいじゃん、と。 そういうのは大域ハンドラで捕まえるもんだけどPythonは雑魚いからないんだよね
残念だ それはそれで面倒だな
適切な階層の人が処理する、が一番柔軟でいいと思うけど ディレクトリ扱うとき、osとpathlibどっちが主流?
いつもos使ってたんだけどpathlibでできてosでできないようなことってある? rmdirはどうやっても不便なので、subprocessでcmd /c rmdir呼んでますが iot勉強したくてラズパイ買ってPythonで動かそうと思ってるんだけどその質問ここでしていい? ラズパイの開発言語って大抵はpythonかjsでしょ
ラズパイ固有の話ならラズパイスレのほうが回答貰えそう どこで動こうがpythonはpython
言語仕様とかアルゴリズムの話なら共通でできる
でもどうせ詰まるのはラズパイ特有のライブラリ関連だろうから、
最初からラズパイの集まりにいた方が速い >>289
とりあえず質問内容書いてみ
スレ/板違いなら内容に応じて親切な人が誘導してくれるかも知れないし Djangoのテンプレートでオーバーライドするときにオーバーライドされるファイル名をextendsで書くけど無限ループ?かエラー?にならない理由は?(されるほうもするほうも同じファイル名なのに) tensorflowで、学習させるときはGPU使ったほうが速いけど、学習データ作るときはCPU使ったほうが速い
強化学習で学習データ作成と学習を繰り返すとき、どちらにするか悩むというか、できれば都合よく切り替えてほしいんだけど、そういう機能ってないかね? with tf.device(DEVICE):
で囲ってやってる >>296
いい情報ありがとう
学習だけGPUにやらせるようにしたら明らかに速くなったわ
学習はサクサク、その他は遅延なくいくようになった
ファンがうなることもないし最高だねありがとう 興味はあるけど活用例が思いつかないのでやる気にならない
猫と犬が判別できても何も得しない >>298
今はAlphaZeroの本に従って三目並べ
技術的に不満な点を全部解決してから他のゲームに移ろうかと 好奇心だけでやるにしても、youtubeで公開したら興味持ってくれそうな新規性のある内容でないと 電子工作もそうなんだよな
いろいろ作れる知識と技術は揃ったけど、さて作るものが何もない
仕方ないのでLEDをチカチカさせる 最初から新規性求めるのはどうかと思うね
まずは基礎を固めてその上でどうするかだろ
新規性だけ提案して完成度の低いものを作ってもパクられて改良されてオリジナル主張されるだけ 往々にして基礎を固め終わった時点で行き先を見失うんだよ
高専とかで具体的な課題に挑戦してる人たちが羨ましい 俺も最初の強化学習はAlphaZeroをオセロに適用したやつだった
結構いい題材だと思うわ すぐに目的がなくても、基礎を完璧に固めておけば、アイデアが出たその時にすぐに実現できる
アイデアが先走っても、実力がなければ結局完成しなかったり、できても嘘くさかったりする
だから基礎は重要 でもアイデアなんか皆無じゃん
「やる理由を見つける」という不思議なことになってる
技術の習得自体が楽しいから、という動機で構わないけど、
それなら何か目的がありそうな思わせぶりは嘘になる 環境構築の学習が難しい
ネットにあるハウツー通りにはやれるけど、DockerとかAnacondaとかの違いがよくわからんし
参考にした記事書いてる人も実際そんなわかって無さそうな雰囲気あるし
どこ読めばいいんだ 実はもうすでにアイデアがあって実現しちゃったんだよね
自分のカラオケのスコアデータから伸びしろのある曲を抽出するAI
実際に一気に点数が伸びた曲もあって自分ではけっこう使える
他人にうらやましがられるようなものじゃないけど、自分でオリジナルのもの作って役に立って満足だよ あとやっぱ初心者向け学習終わった後何すりゃええねん、ってのがあるな
ゲームで例えるなら、最初の村は細かくクエスト目標表示されてたのに
最初の村クリアした途端、広大なオープンワールドゲーが始まって放置された感がある 世界中に天才がたくさんいて
役に立つこと、儲かることは
その人たちが率先してやっているからなあ
凡人は追いつくのさえおぼつかない 三目並べいじってたらだいぶ本のコードとは違うものになったw
本の内容でも無敵の引き分けマシーンはできるんだけど、できた結果は引き分け方に面白みがないものなので、もっと面白い引き分け方に誘導する工夫をあれこれ考えている
役に立たないけど楽しい >>312と>>314が伸びないヤツと伸びるヤツの違いを端的に物語っているな >>314 が伸びるかどうかはわからんけど楽しそうでなによりだし >>312 が伸びないのは俺にもわかる こういうの作って、一週間で
と無茶振りされて基礎固めとかすっ飛ばしてどうにか形に仕上げるのが一番速く上達する 改造して遊べるサンプルプログラム集があれば良いのに 質問です。
pipでvirtualenvをインストールした後
virtualenvコマンドを入力すると
command not found
になります。
$ pip install virtualenv --user
Successfully installed distlib-0.3.4 filelock-3.7.1 platformdirs-2.5.2 six-1.16.0 virtualenv-20.14.1
$ virtualenv -p python3 .venv
-bash: virtualenv: command not found
どうすれば良いのでしょうか?
OSは、macOS 10.14.6です。 >>320
hash -r
Pythonじゃなくシェルの話 from django.contrib.admin.sites import AdminSite, site as default_site
これ2つインポートして一つのリネームあるけどどういう意味? 昔のバージョンのdjangoだと
from django.contrib.admin.sites import site as default_site, AdminSite
になっててますます分からん あー分かったぞ
from django.contrib.admin.sites import site as default_site
from django.contrib.admin.sites import AdminSite
こういうことか #ネストしたリストを使ってナルトの模様を描画したい
#ナルトの大きさ、記号、線のオフセットはユーザーから受け取りたい
def naruto_generator(size, naruto_char,offset):
naruto_matrix =[]
#空のリスト[]]を含む配列を、ユーザーの指定の長さで作成し、縦の数だけ複製
for i in range (size):
naruto_matrix.append([0 for i in range(size)])
#描画の現在位置であるカーソルを設定
cursor = 0
#ナルトがサイズの半分である中心に到達するまで処理を行う
while cursor <= size //2:
#上の横線の描画
for i in range(cursor, size - cursor):
naruto_matrix[cursor][i] = naruto_char
#右の縦線の描画
for i in range(cursor, size-cursor):
naruto_matrix[i][size - cursor -1] = naruto_char
#下の横線の描画
for i in range(cursor, size - cursor):
naruto_matrix[size - cursor -1][i] = naruto_char
#オフセットでカーソルを進めてから左の縦線を描画
cursor += offset
for i in range(cursor, size-cursor):
naruto_matrix[i][cursor] = naruto_char
return(naruto_matrix)
#あまりpythonぽくないですね、全部リスト内包表記でやってしまう猛者とか期待します
matrix = naruto_generator(size=40, offset= 3, naruto_char="#") ナルトのマーク?の定義ってどうだったっけ
>>326
print('\n'.join([''.join(map(lambda c:'■' if c=="#" else '□',m)) for m in matrix]))
https://i.imgur.com/Kx46VjU.jpg
これでいいのかな 愚直に適当な螺旋の関数をXYテキスト座標全体で描画 >>327
できれば一筆書きで
右に向かって10進み、下に向かって10進み、
左に向かって10進んで、帰りの上方向の縦線をオフセット分を減らした9進んで
というループで中に向かってオフセットを減らしていきたいです
ネストのリストでやると難しいですね。。。 >>330
やばい、貼る前にいじってたら
おかしくしてしまったようです、見直します 全角スペースでインデントできればいいのにな
strip()では消えるんだからスペースだと認識はしてるんだろ >>329
内包表記にコンビネータ―のテクニックを組み合わせて再帰でうまいことやればできるはずなんだが、
再帰をコンビネータで表現するのがうまいことできなかった。一旦関数に名前つけてやればできるのだが。
ちなみにコードとしてはだいたいこんな感じになるはず。
https://ideone.com/rrKqSU >> 329
ちなみに、素直に書けばこんな感じ。
https://ideone.com/3hzvte >>334
ありがとうございます、勉強させて頂きます pythonやりたいんだが
vsかcharmかコラボか。
複数のgpuを使いたいならどれがおすすめかな? ぜったいにcharm
さもないと、イヌのふんをふみます >>339
まじかw
何でcharmがいいのですか? vscode/jupyterで十分なのにライセンス買ってしまったんやろうなぁ vscodeのtabnineってめっちゃすごいね
すらすら書ける >>342
え?あいつバカすぎない?
有料プランなの? >>343
いや、ほぼ直すけどさw
そのうち精度あがるんじゃないのかな?
有料プランのみ? >>339
C♯と違って最初に始める環境の選択を間違えると
思いっきり犬の糞を踏みそうな怖さがあるよなPythonって PyCharmってvscodeと比べてどこが優れてるのかわからんな
vscodeに拡張機能入れてりゃ変わらなかったりする? わざわざぐぐってコピペしなくていいように、定型文を集めた虎の巻が手放せないけど、
それが勝手に生成されるなら便利かもしれん >>344
有料だと複数行一気に予測ではいるらしいから、一度見てみたいのはあるけど、多分バカだと思ってる 最後だけ-100となります。
この挙動の説明お願いします。
>>> def mypow(x,y):
... return x**y
...
>>> mypow(-10,2)
100
>>> x=-10
>>> y=2
>>> x**y
100
>>> -10**2
-100 日本の強姦の80%は在日クソチョンが
犯人なんだぞ!
強姦民族クソチョン! 標準以外のパッケージを使うスクリプトを配布するとき、実行環境を汚さないためにはvenvみたいな
仮想環境を使ってもらうかpyinstallerでexe化するかしかないっていう状況は相変わらずなのかな。
Webpackみたいなbundlerが使えたらいいんだが。 汚さないのが目的ではなくて、環境を一意に指定するのが目的
でもみんな最新にしとけば問題ないことが殆どだし、
有効活用できてるケースがあんまり想像できない ということは目的がズレてるから待ってもゴールはやって来ないね
無駄な祈りお疲れ様 新しいのにしちゃうと動かない、みたいなややこしいのだけ例外的にvenvで括り出す
みたいな使い方かな >>356
そういう場合に限ったわけじゃないけど、自分のスクリプトで使うためのパッケージを利用者の環境に
インストールしてもらうのは心苦しいじゃん?
Perl/Python/Ruby世代の言語だとそれが当たり前だったんだろうけどいまだに同じような状況ってことね。 unittestの質問です。
def hoge():
foo()
bar()
みたいな関数でfooとbarの間で外部サーバーの状態変更を行うコマンドを動かしたいです
mockで、bar()の挙動は変えずに別の処理を割り込ませる、ってできないかと調べてたんですが、どうも情報が見つからず…
良さげな方法ないですかね? >>361
テストのときだけ外部サーバーの状態を変更するコマンドを実行したいの?
外部サーバーと状態とbar()に依存関係があるの? >>362
どちらもそのとおりです
処理fooと処理barの間で、プログラム外部に対して設定変更の処理を実行したい、というのがやりたいことです Pythonでメジャーなmock方法を詳しくは知らんが
mockライブラリってmoak後の関数からmock前の関数を呼ぶ方法が大抵提供されてないか? >>363
barが外部サーバーの状態を取得する箇所をmockする(正確にはstubだけど)
テスト対象処理の中間にテスト時だけコードをはさむのはやっちゃダメだと思う >>365
ありがとうございます
推奨される方法ではないんですね
一応side_effectを駆使して期待したテストは行えるようになったのですが、心に留めておきます… 変数の後ろにコロンをつけるとどんな操作になるのですか?
a:1
との記述をみかけたと後輩に聞かれてハテナ状態なんです
見間違いが打ち間違いかと思うんですけどエラーでないので気になってます >>368
ありがとうございます
__annotations__を覗いたら"a":1がいました
intやstrじゃなくても入れられるのは知りませんでした 標準モジュールで構成がシンプルで、コードが読みやすいものを教えて下さい subprocess.Popenする時に、stdout=subprocess.PIPEだけならいいけど、
stderr=subprocess.STDOUTも付けると、poll()がNoneのままになる
なんで? errの出力までoutのパイプ一つに詰め込んだからパイプが一杯になってデッドロックしたんでは nuitkaでexeファイルを作ろうとすると、Cコンパイルのあたりでログのテキストファイルがno such file or directoryになって止まってしまいます
番号違いのログファイルはあるのですが、どうしたらいいでしょうか? vsコードってcuda使えますか?
cuda使えるならpythonでやってみようかなと。w
vs以外であれば是非! 韓国の統一教会が
日本人をひどい目にあわせても
在日韓国人は知らん顔!
だから在日韓国人は信用できないのだ。
本当に在日は皆殺しにすべき! 総元締めは安倍だったんだぞ
ネトウヨは反省して死ね 加害者の親が貢いだ額は、1億だってさ
ネトウヨ、義侠心があるなら、
統一教会本部に抗議くらいはしてこいよ 安倍晋三は統一教会とは関係ない、良い人だから利用されただけ
これを信じられるかが、日本人かどうかのリトマス試験紙 日本の国富を格安で売ってくれた安倍大人を堅く信じるアル >>389
山上の兄は小児ガンで闘病していた。
母は苦しみ、救いを求めた。
統一教会は摂理を説き、富を人類の救済に使うことを薦めた。
母は人類救済のために1億3000万円で壺を購入した。
兄はすべて自分のせいだと思い自殺した。
こんな家庭はどこにでもある。
オウム真理教は社会から追い詰められたが、統一教会は称賛される。
自民党の先生方が統一教会のミサに出席して勇気づけるからだ。
あなたたちが摂理を説くおかげで世界が救われていると。 霊感商法をなくす立場の政治家が、霊感商法の広告塔になってはいけない。
水素水を国民に勧めていたことを忘れたのか?
ヒトラーは良いこともしたが悪いこともした。 オウム真理教は淘汰されたが統一教会はますます繫栄した。
違いはバックに自民党がついてるかいないか。 なんちゃら還元水はとても良いものだから、すべての日本の御家庭で使っていただきたい。 >>389
良い人だから利用されただと馬鹿め!
勝共連合からの献金が欲しくてくっ付いてたんだから、
金で日本人を売った売国奴だ!
そもそも国民の生命と財産を守るのが政治家の最も優先されるべきことなのに、
日本人の生命と財産を奪う韓国人の統一教会を
守ってたんだから、安倍は死んで当然の極悪人だ!
2005年、警察が統一教会を捜索しようとしたのを止めたのも安倍だぞ?
安倍を擁護するのは韓国人だけだ!
お前は韓国人だ! 血液製剤の時も異常だったよな。
当時はネットがなかったのでその場を見た人以外知らないだろうけど、各地でデモがあって、多くの人が逮捕された。
HIVに感染することがわかって、日本以外の国では禁止されたのに、なぜか日本では禁止されず、禁止を求めるデモは鎮圧された。
今もって謎な現象だった。 >>399
死んで当然というのもおかしな話だけど。
司法が機能しない以上、民間が動くしかなくなる。
本来行政がやるべき仕事を、山上さんが肩代わりしたと考えられないかな?
個人の力でできることは限られていて、それが殺すということだった。
そういう極端な結果を招かぬためにも、行政が機能するべきだったと思います。 政治豚って生きてて楽しいの?
なんかいつも何かに怒ってて可哀想 python初心者なんだけど
pythonで楽譜画像からmidiデータを起こす物を作りたくなった
OpenCVとmidoというライブラリがあればいけそうなのかな
こういう「誰かがやってそう」レベルのものを作りたいときって、どういう場所で情報探すのがいいのかな
初心者だからまだグーグル検索とQiitaしか知らないんだ 画像側はトンボがある固定サイズ用紙なのか
そうではないかで難易度が違うねぇ。
夏休みの宿題? >>410
手書きとかは想定してなくて、一般的に流通してる楽譜をスキャンしたものだったりウェブ上にある楽譜の画像かな
難しかったら画像にプログラム合わせるんじゃなくて、プログラム側に画像を合わせるような作りでもいいと思ってる
midiファイルを使うVRアプリがあって、それ用に楽譜からmidiデータ作ってたんだけど
手動でmidiにするのめんどくさくて how to convert music ( / score) to midi とかで検索したら?
だいたいニッチなのは海外フォーラムで解決する >>408
取り敢えず、音符が音になる、
というシンプルなのを書いてみました。音しか鳴りません。
これを広げるイメージで合ってますか?
#Beep音のライブラリをインポート
from winsound import Beep
#「Beep (Hz, 長さ)」を呼び出して、音が鳴るように
#ドレミファソラシの各音階を辞書に格納。ドは523Hz、など。
table = {'ド': 523, 'レ': 587, 'ミ': 659, 'フ': 698, 'ァ': 784, 'ソ': 880, 'ラ': 988}
#チャルメラの音符を格納
charamela = "ドレミレド" *2
#チャルメラを一文字づつ
for note in charamela:
#Beep演奏する
Beep (table[note], 400) そこはどうでもいいんじゃないの
まずは楽譜画像からAIで音符認識して、
たとえば文字のドレミに置き換えるところからだろ pdfからmidiデータはオープンソフトウェアのmusescoreがやってるけどあれpythonじゃないか ググれば出てくるけどscanscoreも一緒
中身python [0,1,2]
を、
[1,2]
[2]
にしたいのだが、、、
javascriptであれば、
shiftで終わりなのだが、、、 from functools import wraps
import time
from collections import deque
def sw(func):
_@wraps(func)
_def core(*args, **kwargs):
__start = time.time()
__result = func(*args, **kwargs)
__elapsed = time.time() - start
__print(round(elapsed*1000, 3))
__return result
_return core
@sw
def shift(l:list):
_l.pop(0)
_return l
@sw
def del_(l:list):
_global x
_x = deque(l)
_x.popleft()
_x = list(x)
for func in [shift, del_]:
_x = [i for i in range(10000000)]
_func(x)
なんでやdequeがんばれやカスが >>413
うわー、ドレミファを文字ごとにリスト化して
ヘルツ数値のリストとzip、dictしたら、凄いコーディングエラーしてしまった >>413
midiデータは(楽譜も)
縦の音階・横の時間軸の2種類の要素を格納したデータみたいなものですね
(本当はベロシティとか色々あるけど自分の用途の場合は省略)
ドレミに置き換えるというよりは88鍵のうちの何番目、という感じです
調号で場所がずれてくので、そこも考慮しないといけないですが
時間軸はデータ側で実際の秒数を決めるのではなく、いくつかの定数(音符の長さ、拍子)を設定して、BPMを掛け算する形なのかな
音符や休符の形を読み取ってなんの種類か(どれだけの拍子か)を探すわけですけど、音符の旗がくっついてるものがあるんですよね
あと音符に小さな点をがついてるものは1.5倍の長さになったり
ここらへんをうまく読み取れないといけないので難しそうです
一つでも間違えるとその後すべてがズレて酷いことになります だからイチから作る気は無いからライブラリ紹介しろっつってんだろう 音符は一音一音が分かれている訳でもなく
連音符やタイやスラーや
ループもあるしループ脱出もある
面倒な処理がいくつも必要 >>408
君が読むべき本は第一にこっち
ISBN 新 9784276100008
ISBN 旧 4276100003 >>430
これじゃないけど持ってますよ
タイやスラーの違いを画像で検出するのは面倒そうなので諦めてますね
タイの場合、結局読み取る音符の長さは同じなので後で修正できる範囲です
(音が鳴り続けているか、一瞬音が途切れるかの違いです)
反復記号も後でコピペなりすればいいので
midiツール上での編集はそこまで苦じゃないんですよ >>419
ありがとう、、、
for文がわからなかった、、、 楽譜は記号片として認識した後記号処理上の面倒さが多少あるってだけで、技術的には難しい部類じゃないと思うけどな
もちろん自分で作れるほど簡単とかそういうことを言っているわけじゃないが、アプリとしては普通に売られているレベルで成熟しているように思う
タイとスラーだって間違えるケースはごく僅かだと思うな
https://www.playscore.co/blog/convert-sheet-music-to-midi/ >>434
タイやスラーの違い、というよりは「タイやスラーそのものを検出するのが面倒そう」と言うほうが正確かもしれません
五線上に紛れてたりするので midiのフォーマットにもループ記号あれば良かったのにと思うことはある >>428
チャルメラにはドレミしかないからギリセーフで、バグじゃないんだ
動くし、音もなるだろう?
チャルメラには罪はないんだ。 pythonでプログラミングの勉強始めてこういうスレ初めてきたけどみんな頭良くてびびるわ r"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:[0-9]{4,5})"
ipアドレスとポートはこれでマッチしたのですが
これってもっと短くできないでしょうか 256以上のアドレス、ポートも16ビット超えるけどいいの?
[0-9] → \d
最初の3組をくり返しにする
全体を()でグルーピングする意味はない
アドレスとポートでざっくり分割してアドレス変換成功で判断するか
あるいはそれぞれグループでマッチさせて255以下か確認するなど >>440
なるほど、やってみます ありがとうございました ip部分は
import ipaddress
def is_ip(arg):
try: ipaddress.ip_address(arg)
return True
except ValueError:
return False
ポートは0~65535までだから同じように関数使って判定してみたら? >>440,442-444
ありがとうございます
全部できました! pythonって正規表現嫌いだよな
極力使うなと思っている 嫌いじゃないとは思うけどreのAPIはめちゃくちゃ使いにくい めちゃくちゃっていうほど他言語と違いあるか?
何の言語と比べてるの? 根がperlなので、これは正規表現でこう処理できる、が思い浮かんで、
そのままpythonで書こうとしてもすごい面倒くさい
正規表現以外の方法でやろうとしても大抵は面倒なので、
関数に切り出すかライブラリを探すか、とかになってとりあえず正規表現は使わない assignment expression (代入式、:=)が入ったから
そんなに面倒でもなくなった印象だが Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
っていう言葉もありますのでね >>455
> two problems.
とは何。 >>454
値を返す代入と、正規表現に何の関連があるの。 >>452
JavaScript, Ruby, C#, Go, Rust, Swift辺り
問題は2つあって
1つは用意してるメソッド群とその命名
もう1つはキャプチャグループの扱いにくさ
だいたいどの言語もJSで言うところのmatch/matchAll/testの3種類を理解しとけば大丈夫でそれぞれ分かりやすい名前がついてる
Pythonはtestに相当するメソッドはなくて
match, search, fullmatch, findall, finditerとあるが・・・・・・・・・ (続き)
1. ^と$使えばmatchとfullmatch必要ない
2. matchという名前と処理内容がマッチしてない
3. 同じfindから始まる名前でもfindallとfinditerは返すものが異なり全く一貫性がない
4. findallやfinditerがあるのにfindがない
5. findallはキャプチャグループが絡むと使い物にならない
要するに余計な物があって命名が悪くて一貫性がないから使いにくい
だからreを使う時は
1. 基本的にseachかfinditerを使う/matchとfullmatchは基本使わない(使ってるコードは怪しむ)
2. findallはキャプチャグループが絡む時は絶対使わない
3. test相当はbool(re.search(…))を使う
って方針でやることにしてる reはそれなりに回数使ってる筈なのに、
結果をどうやって受けるのかが未だにしっくり来てない
group? groups? groups()[0]? group(0)? WindowsでUnicodeを扱うためにはpython3.7に環境変数PYTHONUTF8=1を登録するとあったけど
登録の仕方が分からず苦労した
変数名:PYTHONUTF8 変数値:1
にするのね Windowsの環境変数に"PYTHONUTF8"って必要なのかな?
ネット上ではよく見かけるけど、今まで一度も設定したことないな
Unicodeで困ったのはpython 2を使ったときだけで、この環境変数は関係ないし、
python 3では、コマンドプロンプト利用でも困ったことないなぁ
具体的にどんな場面で利用するものなの? それを参照してるモジュールを使う時に、なんだろうけど、
必要になったことがないし、むしろそんな変なモジュールは淘汰されるだろうから、
今後も使うことは無い気がする ああ、encoding='utf-8' を書かないと思った通りに動かない奴が、
デフォルトで動くようになるということか
手抜きできるけど、よその環境で速攻動かなくなるし、避けたい方法だな
明示的に書くことは何も悪いことではない 他の環境(macOS・Linux)などは標準でシステムロケールがUTF-8になっていてWindowsも合わせないといけない
俺は先に行くことにした 自分もLinuxとWindowsでクロスプラットフォーム対応してるけど、
そのままで問題なく動かせているけどね
ロケールよりシステムAPIの場合分けのほうがめんどくさい コンテナ環境でハマったことあるな
3.7か3.8以降は気にしなくて良くなったみたいだが > encoding を省略しているコードはほとんどが encoding="utf-8" に置き換えても問題ない。それで壊れることよりも、圧倒的にバグ修正になる方が多い。
> ASCIIテキストを読み書きするのに encoding を指定するのは(やはり)大変な労力である。
まあ確かにな
流れがそっちに向いてるなら、先回りしても損はない なるほど
デフォルトでutf-8を読んでコンソールに表示させて、ファイルにリダイレクトさせても
エラーにならないし期待した通りに動く
どう見てもあるべき姿なのに、まだ当分はこれがデフォルトにはならないらしい 新規作成のテンプレート(シバン入)
未だにこんなの使ってるわw
#!/usr/bin/env python3
# -*- coding: utf-8 -*- PYTHONUTF8=1を設定してみた結果、
デフォルトでsjisを読み込み実際にsjisで書いてあるファイルの処理が速攻止まった
なるほど、そうなるのか
しばらくはモグラ叩きだな ↓をやってみたんだが、出力結果がひどいことになってしまった、失敗したようだ
WSLのubuntu内にAnacondaとか色々入れて、最終的にpython3のプログラム実行する感じなんだけど
誰か試しにやってみよう、って方いたら結果を教えて欲しい
WSLでMagentaを使ったピアノ耳コピの自動化
https://qiita.com/burugaria7/items/4005724c5d1b5228327e >>476
# -*- coding: utf-8 -*-
これはpython側だけの話じゃないから入れとけ Python3動作する現代的な環境でそれが必要って特殊すぎるから
じぶんの環境がそうでないなら書かんかな
ネットのコードでももうみかけんし っていうかf文字列の実装が遅すぎる
ver2の時点であっても良かったくらいなのに ver2がバックポート以外の新機能を追加してくフェーズだったのは20年も前だぜ。それは無茶 name = "ああああ"
print "名前は{name}です".format(name=name)
これが便利そうだと思えてたということなんだよな
perlでは
print "名前は$nameです";
と書けてたのに print "名前は{}です".format(name)
じゃないの? 間違えた
print("名前は{}です".format(name)) '名前は{name}です。歳は{age}です'.format(age=100, name='ああああ') >>487
name = "ああああ"
print(f"名前は{name}です") print('名前は' + name + 'です') リテラルで書けないときもあるし無駄に名前汚染しないformatのが柔軟
f文字列はシンタックスシュガーだから存在できてる 変数使わなくても良いからってことじゃない?
直で文字いれるのはどうかと思うけど 直でいいんならf文字列も変数なしで使えるんじゃね? formatが基本としてあったほうがいいよ
fは汚くなること多いし、割とどう書くのか迷うことあるよ パラメータをリストで用意して*で展開、っての以外はf文字列の方が手軽でいいな。 formatでまぁ事足りるな
{}{}{}とやってから、あとでカンマ区切りで変数足すだけだし
>>495
変数が文字列以外だともうひと手間必要 読みやすさと保守の両方からf文字列の方が優れてると思うけどな
.formatの利点が思いつかない f-stringの方が簡潔じゃね?
{}内に直接の式も書けるし formatに辞書を渡して動的に表示を変える、みたいなことはf文字列にはできない f-stringの最大のデメリットは、環境を選ぶということだな
3.6未満なんてと思うかもしれんが、OS制限等でまだまだ動いてるところはあるし
だったら、慣れてるformatで書いとけばいいやということになる
formatが廃止予定というわけでもないしな 汚くなるとか迷うとかフワフワしたこと言われてもね
コードで示して欲しいわ >>508
ごちゃごちゃ言ってるけど、結局自分が書きなれてる方で書きたい ってだけじゃねーか 本に載ってたのは>>490だからいつもこれで書いてる >>476
そもそも
# -*- coding: utf-8 -*-
なんてソースに描いてもpythonの方には何の影響も及ぼさない訳だが formatの方が面倒
f''はCの書式っぽく描けるので嬉しい
>>507 みたいな例外は認める >>510
だから、わざわざ(というほどでもないが)f-stringを使う必要を感じないということだよ
もちろんf-stringを全く使わないというわけではないし、否定もしない
冒頭のfなしで使えるなら、もう少し肩入れするけれど 3.8以降だと変数名、辞書、リストのあとに=付けると名前も含めて出力できるから重複がなくなって好き
USD_JPY = 134
print(f'{USD_JPY = }')
# USD_JPY = 134
list = [0, 1, 2]
print(f'{list = }')
# list = [0, 1, 2]
dict = {'key1': 3, 'key2': 4}
print(f'{dict = }')
# dict = {'key1': 3, 'key2': 4} >>509
うーん、PHP好きでしょ?
そういう即物的な書き方がしっくりくる人がいるのはわかる >>510
爺さんは新しい機能に慣れるのに時間がかかるから許してやれw >>516
人をプロファイリングする前にコードで示してよ
即物的とか言われてもよくわからん
ちなみにPHPは一時よく使ったけど言語としてはそれほど好きじゃない >>516
即物的、ちょっと意味わからんが、直感的という意味ならむしろいいことじゃん? 'C:\test'
これをraw文字列つかうと
path = r'C:\test'
print(path)
# 'C:\\test'
となるのはわかるんだが
path = 'C:\test'
と変数に入ったあと、変数 path にraw文字列当てはめる方法はあるの?
代入の段階でraw文字列使わないと無理? >>522
無理
rとかは次に続くリテラルの解釈方法を指定しているのだから、一旦tabとして解釈された\tをバックスラッシュとtと解釈し直す方法は置換ぐらいしかないが、余計に戻されてバグの元 >>523
無理なのかー
たとえばファイルパスをよそから拾ってきたり入力したりする場合は
raw文字列使った方法は使えないってことか パスに限定すればそれ用のがあるから自前でやらんでも 他所から読み込んできたならそもそも\tをtabと解釈されたりしないでしょ。まさに取越苦労 >>524
あなたは勘違いしている、よそから拾ってきたり標準入力したりした場合はちゃんとバックスラッシュはバックスラッシュとして取り扱われる
\tがタブになったり\nが改行になったり\\がバックスラッシュになったりというのは、あくまで、コード内に普通にリテラル文字列を書くときにはそう解釈されるというだけの話
ファイルから読み込んだときには\一個で\だよ >>525>>526
>パスに限定すればそれ用のがある
そういうのがあるのか
ありがとう
調べてみる >>527
>よそから拾ってきたり標準入力したりした場合はちゃんとバックスラッシュはバックスラッシュとして取り扱われる
そうなんだ
前にErrorを起こしたときがあって、それが原因だと勘違いしてしまった 単に、リテラルの解釈の仕方だけの話でしょ?
Ruby では、
p path = 'C:\test'
puts path
出力
"C:\\test"
C:\test
タブ文字など入っていない
p は、あくまでも内部的な表現で、
"C:\\test" では、"〜"で囲んで文字列型を表し、\\ で\ の1文字を表す
リテラル中のタブ文字は、実際にタブキーを押す。
p tab = 'C: est' # 空白に見える所で、タブキーを押した
puts tab
出力
"C:\test"
C: est # 空白に見える所が、タブ文字
p は内部的な表現だが、"C:\test" では、\t でタブ文字を表す pylintでW0621: 外部スコープから名前 '' を再定義
とか言われるんだけど
引数として外部から関数の中にもっていく変数って、外部と内部共通にしたほうがわかりやすくない?
まあ、pylintで怒られるからダメなんだろうけど
例えば外部で使ってる変数が count「for文の繰り返した回数」で
これを引数として関数内に持ち込んだ場合はどういう名前にするのがいいの? >>533
コード見てみたい
普通は変数の再代入は避けるべきだよ
ただの参照は問題ないよ >>535
再代入というのは関数の中で外部の変数に値を代入するということか
再代入じゃなくて参照だから問題ないのかな >>536
たぶんおたくのコードは
c = 1
def x(c):
__c = c*2
__for i in range(c)
みたいになってると思う
ただの参照、読み込みのみならエラー出ないんじゃないかな。pylint知らんけど
def y(c):
__for i in range(c*2)
これは通ると思う >>533
簡単な使い捨てスクリプトなら無視する
メンテしていくようなプログラムならスコープを分ける
countを引数にとる関数を別モジュールに定義してimportしたり
1ファイルで済ませたければmain関数を定義してその中でcountを定義する もし
c = 1
def x(c):
__pass
この段階で警告出るならpylintゴミだから捨てよう >>537-539
ありがとう、多分大丈夫っぽい
ちゃんと作りたいときはなるべく分けるようにする
main関数を定義って
def main():
if __name__ == "__main__":
>>>>main()
みたいなやつだっけ >>540
そうそれ
importとかまずしないスクリプトなら単にmain()を最後に書くだけでもいいと思う pandasのread_excelでエクセルデータ(複数シート及び単数シート)の
データを読み込み結合したDFを作成しDFを検索ということをしているのですが、
検証していると一部のデータしかマッチしていないことが判明し、
1つのブック(BK_1)の2番目のワークシート(WS_2)の値のみマッチしていることが判明しました。
ヘッダがどこか違っているのかと思って正常なWS_2のヘッダを各シートヘッダ部分にコピペしてみましたがこれだと読めませんでした。
さらに検証すると、WS_2の後に他のワークシートの行値をコピペした場合のみマッチしました。
大変エスパー案件で申し訳ないのですが、データは一切晒せません。
エクセルデータは客先より支給されたものです。
何か原因が思い当たる方がいらしたら教えてください。 読み込んだそれぞれのDFを出力する分には違和感ないん?
to_xarray()したら想定してない形式とかありそう
あと他言語でもいいから違うライブラリでシート呼んだら気づきがあるかも >>545
ありがとうございます。
DF出力見てみたら数値が文字列化されていませんでした。
excel側で文字列設定しておいたので大丈夫かと思いこんでいました。
助かりました。 あるあるやね
pandasってそこら辺がもっと柔軟性あるといいなって思う pandas頼りすぎだろ
openpyxlの機能使ってるだけなのに
自分専用ツールならread_excelで良いかもしれんが仕事でコレ使わんなぁ いやいや、pandasが拡張した部分は大きいだろ
うまくいく時はすごく楽 GPUとの通信が結構ネックなんだよな
あんまり細々したものをやらせても遅くなる
効果が見込める用途は既に誰か作ってる じぶんで書きたいなら結局C++でないとねそのへんは 質問。python始めるならcolabがいいですか?
やりたいことはオンライン気象予測です。
//cmap.dev/#6/37.848/142.494
これを作りたいです! 今から本気で気象予測データをpythonでやります!
あっという間にやってやんよ。
まっててね!くださいw できた。
imgur.com/a/IBKHYYz
これもできた
imgur.com/a/ysSf0C0
問題は>>555みたいにオンラインでやりたいんだが。
google colab以外でpython(vsやらpycharmやら)のお勧めありますか?
やる気だけは負けません! >>563
python webapi 気象予測でぐぐったらそれらしきものはでてきてん。 気象予測は気象庁に許可取らないと逮捕されるよ
冗談抜きで >>566
予報がマズイのであって、予測はどうでもいいんじゃ? >>569
未来の気象予測結果を公開したらそれは天気予報 誰でも見れたら公開だけどさ
偽の日本地図で趣味のジョーク予想と大きく記述してたらグレーかも
でもグレーなんてやらないほうがいい 親切で教えてやってるのか
咎めたくて言ってるのか
口調からすると後者だと思うが
黙ってた方がやらかす可能性高いのに
教えてやるのはアホだよな > 気象庁の数値予報資料から自動的に明日の天気や気温などを計算するソフトウェアを作りました。
> このソフトウェアを使って予報を行う場合にも予報業務許可が必要ですか。
> どんな予測の方法であっても、予報業務を行うには予報業務許可が必要です。
> ただし、気象予報士が現象の予想をせずに、ソフトウェアのみで予報を行う場合、予報業務の許可を受けることはできません。
つまり、>>555 みたいなサイトは存在自体が違法なのでは ただの趣味を一般公開してるだけで業務じゃない ってレスが来そうだから言っとくけど
素人情報を真に受けたパンピーのクレームが気象庁に行って業務負荷かかるのを避けるために
かなり手前で警告はいるからそのつもりでな。たぶん公開直後に怒られると思う >>574
555のサイトで表示している気象情報は正式なソースから入手したものみたいだから予報業務にはならないんじゃないか?
ただ、勝手に予測というか推測した災害情報を載せてるのはヤバいかもね 研究の側面が強いし気象庁も若手の芽を摘みたがらないだろう
というか絶対OBに話を通してる
あと弁護士
なんのエンコもない素人が開けた場所で遊ぶのは危険。せめてローカル
https://i.imgur.com/7Netqch.jpg >>576
地震予知メールマガジンとか称して有料で情報提供ωしてるサイトがあるが
はよ逮捕 つか気象庁のサイトにQA書いてあるけど
業務の定義が「継続的に反復して」なので、単発でブログのネタにするとかは大丈夫だよ
毎日予報(予想)を乗っけてると駄目
研究とか実験目的だったら過去の気象データから過去のある日の天気を推定すればいい
予報とは今後起きる自然現象の予想だと同じくQAに書いてある ぐぐったらでてきた。
天気予報の免許は?
気象庁以外の事業者が天気や波浪等の予報の業務を行おうとする場合は
気象業務法第17条の規定により
気象庁長官の許可を受けなければなりません。
これは予報業務が国民生活や企業活動等と深く関連しており
技術的な裏付けの無い予報が社会に発表され
混乱をもたらすことを防ぐ必要があるため
予報業務を許可制としているものです。
もし認可を受けずに予報業務の目的や範囲を変更しちゃったら
気象業務法違反で50万円以下の罰金です!
と、ぐぐったらでてきたぞ! 「明日は晴れるかなぁ・・・」
「ああ、晴れるはずだよ。こっちに来る雲ないからね」
この程度の会話でアウトなのかな?w
日本こえぇぇ
ちなみに「業務」というのは必ずしも職業上の対価を伴う作業のみではないのは
道交法からも明らか。 そんな会話をわざわざ放送してるのは、普通にお天気コーナーだろ wikiってみた。
気象業務法に基づく予報業務の許可が必要なのは
営利・非営利を問わず、業務として予報を行う、すなわち
自ら行った予想を日常的・継続的に他者に提供(発表)する場合である。
*あくまで日本の法令であるため、日本に拠点を持たない海外の事業者が
無届けで日本の気象予報を発表しても罰則は無い。
せっかくリアルタイムでマップ作製したのにな。
imgur.com/a/7zl9gXD
これ以上は先に申請する必要があるから勧められない。 てか気象庁からデータ取ってきてそれをwebに表示するだけだろ?
こんなんで気象予報士の資格が必要だとか許可が必要だとかくだらねーな >>585
正式なソースから取得した情報をそのまま表示する分には問題ないよ
ダメなのは未来の予測を公開すること
天気予報は社会的な影響が非常に大きく、安全保障にも関わるから規制は仕方ない >>585
気象庁にメール送ってみたので結果がきたらここに公開したるよ。
そして研究に関してはもっと寛容になってほしい。
この法律のせいで、研究が進まないしね。
それにしても登録免許税が9万円かかり3種類あるから仮に全部の申請するだけで
27万円が最低かかる。これってどうなのよw
特待生制度とか研究所は別途定めるとかにしてくれてもいいのにねぇ。
せっかくオンラインリアルタイムで製作してるのに全てがストップしてしまうし。 研究はしたらいいのでは
役立てて欲しいなら実行環境を公開すればいい >>589
返信ありがとう!
実は某資格を取得してる為に下手なことができないw
つまり資格を剥奪されたくないっていうのが本音ですw
今ここまで進んだ。
imgur.com/a/jLQQya2
ここから先は申請してからすすめるつもり。
9万円払うよ。本当にあほらしいけど、それが法律なら仕方ない。
It doesn't matter who made the new thing.
It matters what was created. Windowsの最新Anaconda、spiderもjupiterも全然動かん。MacかLinuxじゃないとダメだな。 >>593
www.anaconda.com/download/
rainbow-engine.com/anaconda-install-windows/
winでもできるっぽいですよ(知らんけど)
今、マッピングはここまでいきました。
imgur.com/a/I2hCKiM
だいぶ進歩してますぞい!それでも予測などが出来ないのはちょっとねぇ。 >>585
ほんそれ
自意識過剰
死ねばいいのに
ネオむぎ茶 できた。
imgur.com/a/VPp2xPg
気温はまだ載せてないが。
ただこれは連続し、公開したら罪になるっぽいので申請をしてから
公開したいと思います。
意見・要望などがありましたら気軽に教えてねぇ! いつまでもどうでもいい話引っ張るよなぁ
ヒマなんだろうなぁ >>596
要望 : もういいから自分の日記帳に書いてろ >>597
返信ありがとう!597さん!
ナニモノでもないです。
単なる三流研究者です笑
何か気象予測などのアドバイスやおススメのサイトなどがありましたら
気軽に教えて下さいね〜!
今ここまで出来た。
imgur.com/a/YeGkBPk 純粋に予測実験なら、過去を予測すりゃ良いんじゃないの。
一昨日までの気象データで昨日の天気を予測し、昨日の概況で検証するとか。 予測しても精度が必要だから精度の検証をするだけでしょ
それで、ちまたの予報よりいい結果を出し続けるなら学会発表か起業して農家やイベント屋に販売だな 顔を洗った猫の匹数予測なら公開しても許されると思う >>604
憲法的に許されるわけねぇだろ
犬派のオレが本気でデモするゾ Jupyter notebookの起動について質問です。
Windows11 でMicroroft StoreからPython3をインストール。
その後コマンドプロンプトからJupyter notebookをインストールしました。
しかしコマンドプロンプトからjupyter notebookを起動しても、
「Jupyterは、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
となってしまいます。
環境変数の問題かなと思いましたが、Storeからインストールするとインストール先のパスにはアクセス出来ません。
どうしたらよろしいでしょうか?
ネットではAnacondaの方法ならあるのですが、単体のものはあまり見つかりません。
何かわかる方、教えていただきたく。 なんでstore版pythonインストールしちゃったの?
それはゴミだぞ
もしstore版のままがいいってんなら、store版 pip パス 通す とかで検索するがよろし
でもみんな公式版使ってて、ほとんどのハウツーが公式版準拠なのでstore版じゃ不具合出たりするで
いますぐstore版捨てて公式入れるの推奨 >>610
ありがとうございます。今すぐstore版捨てて公式からやり直します >>611です。
公式からインストールしたらjupyter notebookも起動しました。ありがとうございました。 >>608
雨に関する用語だけでもこんなにあるんだゾ!
jma.go.jp/jma/kishou/know/yougo_hp/kousui.html できた。
imgur.com/a/Yllq4aY
予報業務許可事業者を取得したら全て公開するゾ! >>614-615
pythonや、コードやライブラリに関係ない話は気象板でやれ。板違いだ
https://kizuna.5ch.net/sky/ 俺は好きだよ
お前らも若き才能に嫉妬せず応援してやれよ >>613
会社のPCはインストーラでのインストールは管理者しかインストール出来ないがStoreのモノは一部インストールが認められていてpythonやvscodeのインストールは無許可でインストール出来るようになっている
私的には不具合なんか起こることもないしコレで困ったことも無いので好きな方入れればイイと思うわ プログラム板的には Jupyter notebook よりも streamlit の方がお薦め jupyter notebookとstreamlitじゃ結構目的が違うでしょ。
どっちがお勧めというものでもないと思うが。 質問です。
PyCharm.
Atom.
Eclipse.
Visual Studio.
VScode.
どれがおすすめでしょうか?
分散処理、並列処理希望でcuda、マルチgpuもあれば。 そこまで要件決まってるなら
自分で調べて検討出来ると思うけど >>629
エディタと
>分散処理、並列処理希望でcuda、マルチgpuもあれば。
ってあんまり関係無いぞ
まあ強いてゆうなら
有償版使う気ならPyCharm一択
無償でやるしかないならVSCodeっていう感じじゃね?
各種使い勝手とか機能面で言えば有償版PyCharm以外選択肢無いし vscode最強!!vscode最強!!vscode最強!! PyCharmの導入検討してるんだけど
どういうところがいいか教えてほしい
今はvscode使ってる 強いよね。デバグ、バージョン管理、アドオン、隙がない 俺はAtomから始めたけど、カスタマイズたのしーって思ってた。
vscodeさわる機会あったから使ってみたらいつの間にかAtom消してたわ 今は端末に、コードを入力したりしない
Ruby の本でも、VSCode の拡張機能・Code Runner で、
右クリックメニューから、選択したコード片を実行しましょうと書いてあるぐらい >>633
とにかく楽
必要な物はひと通り揃ってる
困った時はサポートに相談できるし時間を買うような感覚 質問なんだが再来年に256コアのcpuが販売されるらしい。
これってpythonにとってどうなるのか?
Threadクラス、multiprocessing、concurrent.futures
[placによる並列処理] [lokyを使ってみよう] [numba を用いた並列計算]
[joblibを使ってみよう] [joblibのAPIドキュメント]
並列処理が多すぎてどれがいいかわからない。
並列処理を実際にしてる人でお勧めがあれば教えてくだされ。 処理が遅いのは大抵I/Oで詰まってるからなので、
詰まってる人はほっといて他の仕事から先に片付けるとI/Oの効率は最大になる
並列(並行)処理が速いのはそんな時
でも256個とかになるとそんなに要らんので、有効活用しようとすると処理を分割して
同時に処理させないと活きてこない
それは勝手にはやってくれないので、人間が頭を絞っていいやり方を考えないといけない >>641
multiprocessing
使っとけばよろしい >>642
並列処理専門の本で確認したのですがコアが32コアだとコスパが良いのですが
その記事には64コア以降はパフォーマンスがあまりよくないという内容でした。
(データにもよるだろうけど)
>>643
アドバイスありがとう。
multiprocessingを深堀していくね。 >>641
ぶっちゃけPythonで多コア活用はあまり意味がない。
ないよりはいいけど、本気で高速化したいなら、128コアのCPUに頼る前にC++とか使ったりGPGPU使ったりの本気の高速化をする。
あまり苦労せずに一回回すのに1時間かかるコードが5分になったらいいなー、とかでmultiprocessingモジュールを使うことはあるけどね。 >>646
ちょっと前に並列化をした結果、並列化の速度と並列化しない速度の差があまり
なかったです。(泣)
GPGPUとmultiprocessingを本気で今から学びます!
オッス! multiprocessing使ってるけど、
8コアのうち6コア使って動かしてるけど、たまに途中で止まってるときあるんだよね
予備は3コア必要なんだろうか? >>644
Windowsにはプロセッサグループという概念があって1グループあたり64コアまでしか扱えないらしく、かなり意識してプログラムを組まないと同時に64コア以上は使えないらしい(細部がうろ覚えだけど)
そういう話も関係してるかもね >>649
情報ありがとう!
つまりcpuは64コアでgpuは8枚差しの方が効率が良いってことですね。
今必死に情報を集めてます。
Kaggle,Google Scholar,Coursera,arXiV,OpenAI Gym,quora,qiita
Stack Overflowなどを必死にやります!
調べまくってevernoteで20 GB の月間アップロードを目指します。 Pythonならmultiprocessing使わない限り
基本的に1CPUしか使わんだろ。 複数CPUと複数コア(というか複数スレッド)は違う
複数スレッドと複数プロセスも違う A Per Interpreter GILなんて提案もあるんだけど
クッソ難航してるからあまり期待はできない
https://peps.python.org/pep-0684/ まず並列処理と並行処理の違いを勉強しよう
日本語の言葉遊びではないよ
さらにこれの上位概念として複数ノードでの並列計算というものがある
これはいわゆるスパコンでやってるような処理 並行処理なんかただの気の持ちよう
今日は会社に行って明日は畑を耕したら、それは並行処理 並列処理もソフトウェアによるものとハードヴェによるものがある
そして並行処理も並列処理のエッセンスが必要
さらに外部ストレージが絡むとはなしはややこしくなる そもそも複数CPUで、って書いてあるのに並行処理とか言う奴は頭おかしい 上記のコメントでpycharmがおススメと書いてあるが
推奨スペックってありますか?
グラボがNVIDIA GeForce RTX 3090 Ti.で足りますか?
もしくは年末に発売されるvram48gじゃないと足りないですか? グラボはどうでもいいけどメモリは16GBはあった方が良いよ
プロジェクトによるけどPycharmだけで3GB使ったりする
8GBだとツラい 複数cpuで並行はありうるだろ
並列とも言い難いし parallelとcoherentは誤訳されやすい グラボは深層学習でよっぽど巨大なモデルでも使わない限り8GBVRAMで良い(yolo3を6gbVRAMグラボで動かそうとしてメモリ不足のエラー出た)
だが画像認識ならともかくセグメンテーション、画像生成、言語処理だとかなりVRAMが要る
複数の深層学習モジュールを同時に動かすとかだと24gbのVRAMのを買うべきかなあ ということは深層学習ならvramが48gを3枚くらいさせば
大丈夫ですか? 3枚もさせるところないんだけど、どんなマザボ使ってんの?
自作PCなの? マザーボード グラボ 何枚まで?
マザーボード:PCIeスロットの多い板を推奨なお
使うグラフィックボードによって同時に使用できるグラボの数は限界があります。
一般的なゲーマー向けグラボ※だと、基本的に最大13枚が限界です。
13枚が限界のようです。 常にフルロードじゃないならクラウドでよくない?
見積もりで何万円もかかりそうならもうそこで満足
趣味だと結果を求めてやってるわけじゃないから ストレージも計算力も、個人がそれぞれに持っても効率悪いだけだしな >>674
そうですね。クラウドでもありがと思ってます。
昔の話なのですが、当時はメモリ2ギガの癖に3か月縛りっていう
サービスがありました。今だと数十円、数百円程度で済むのにw
あとはgoogle pro plusなんかもいいかなーって思ってます。
実際にpro plusを使ってる人がいらっしゃいましたら是非感想を聞かせて下さい。 GILがあるから他言語のスレッド処理にあたるものはPythonのMultiThreadではほとんど効果が得られない
よってCPUバウンドはMultiProcessingでParallel処理、IOバウンドはコルーチンで(async対応ライブラリを使用して)Concurrent処理が良いと思う >>678
gil解除の方法を見つけました。
複数のスレッド処理を行っても、GILの仕組みにより
Pythonの命令は一つずつ処理され同時に処理できません。だそうです。
処理はI/O boundである
処理はfork-joinモデルで並列化できる
→ multiprocessing.dummy.Pool を使う
→ または、 futures.ThreadPoolExecutorのmap関数を使う
処理はもっと複雑
→ futures.ThreadPoolExecutor のsubmit関数を使って
タスク単位に処理を行う
→ または、threading を使って、さらに柔軟にモデルを組み立てる
処理はCPU boundである
処理はfork-joinモデルで並列化できる
→ multiprocessing.Pool を使う
→ または、 futures.ProcessPoolExecutorのmap関数を使う
処理はもっと複雑
→ futures.ProcessPoolExecutor のsubmit関数を使って
タスク単位に処理を行う
→ または、multiprocessing を使って、さらに柔軟にモデルを組み立てる
案外しんどいので、それよりpysparkやPython chapel やcudaに専念しますね。
情報サンキュー!
どうしてもvramが48gが二つか3つ必要です(コストの都合上それ以上は無理w)
クラウドにするならAWS・Azure・GCPどれがいいんだろう?
個人的にはgcpにしようかと検討してます。 次世代GPU「Ada AD102」をフル搭載した
900Wグラフィックスカード。
つまり2枚で1800Wですね。
電源ユニットが2500Wを二つでも3枚さしは厳しいですね。
何で電源ユニットって3000wとか4000wとかでないんだろう?
需要がないから?今後はW数はうなぎのぼりのはずなのですが。 pythonで高速化をする意味がわからない
はなからc++で作るかモジュールを作ればいい
機械学習のtensorflowやlightgbmもc++があるだろう >>681
python使いはC++なんて書けないからね
それにシングルノードでCPUやGPUバウンダリな処理書きたい場合は適切なライブラリがあるから自前で書く理由はない
問題は複数ノードでの並列化だけどその場合はもう言語機能より他の仕組みでやるべき
kafkaとか >>681
C++で使っても結局GILに負けたことしかないからjit のほうが手軽だと思ってます 質問です。VSCodeで仮想環境を構築したんですが、それをさらにGithubで共有することは可能ですか?
ただのディレクトリとして共有して、それぞれの端末で仮想環境扱いにする感じですかね? ご家庭で3000Wとか4000Wの電源使ったらブレーカー落ちるぞ それだと200Vの独立電源かな
エアコン用を流用だな >>689
MSが用意してる
拡張検索かググるくらいしよう >>689
普通は仮想環境をそのまま丸ごとGitHubで共有しない
良くやるのはrequirements.txt使ってライブラリの一覧を書き出して
それを共有する
書き出し
pip freeze > requirements.txt
requirements.txt経由でのpipインストール
pip install -r requirements.txt >>691
200vは理解できるのですが、300vとかはないのでしょうか?
200v 60aが最高なのでしょうか?
>>688
JIT有りの速度計測結果はなんと0.6[s]ほどになりました。
先ほどの26[s]と比べると43.6倍の高速化がなされたこととなります!
ここまでの速度とは知りませんでした。
高速化って凄いですね。 >>693
ありがとうございます。環境はそれで構築出来ますね。
他のファイルとかはGithubで共有することは可能でしょうか? >>694
だってそもそもご家庭に300Vの電圧なんて引けないでしょ。
三相100Vなら配線を変えると200Vが取り出せる そのレベルまで検討してる人って、電気代どれくらい使ってんの?
俺はせいぜい月6000円ぐらいだけど、それでも多いなと思ってたけど、今の話って桁が違うよね >>697
情報ありがと!
200vにしますし、電源ユニットも二つにします。 工事代と電気代を考えると
クラウドの方がいいと思うけどな ガーシーのサロンは月4千円
Mastodon で、10万人のライブ・同時配信とか、
電気代が1億円とか行くんじゃないの? とか言われている vram48gを二つ必要な深層学習ってあるの?
これでも足りないことってありますか? 脳の強みは結局超並列処理だから、
それを真似しようとしたらプロセッサとメモリはたくさん要るだろう >>705
48g二つでこれが出来る、これが出来ないとか
そういうデータがあれば教えてほしいです。
メモリは256Gが限界です(コスト的にw) なんでもできるんじゃないの
規模を大きくすると精度が上がって遅くなる 見る時間無駄だから
要約してココへ書けよ
なんのための掲示板だよw 結局vramは24gでいいのか、48gでいいのか48x2がいいのか。
ディープラーニングはメモリ不足に陥りやすい
ディープラーニングは
画像などのデータを大量に読み込んで処理するため
膨大なメモリが必要となりGPUのメモリ不足に陥りやすいです。
画像を高速で処理し複数の計算を同時に行える環境が必要となります。
こんな記事がある。
けど、もっと詳細でこういう処理したらエラーになったよ。
っていうデータがあれば嬉しいんですけど。
費用がある為、cpuは64コア、メモリは256g,vramは48x2
これ以上のコストは出せない・・・w クラウドのが必要なときに必要な分リソース確保できるのに
なぜローカルでやろうとするのか
手持ちのビデオカード活かすならわからんでもないが メモリ使用量なら、今ある環境で試算しろよ・・・
与えるパラメータを上下させるなり、モデルを削るなり
利用する手法自体だっていくらでもある
こんなところで聞くより
より詳細で有用なデータが取れるぞ 「ラーニングするのは人間」
と云った、機械学習の大先生がいたな もっとちゃんとしたAIを作れば汎用に使えるんだろうけど、
現状は激しく単純化してるので、使えるようにする工夫が必要
それが人間のラーニング 「もっとちゃんとしたAI」ってのをAI通すとどう解いてくれるんだろうな イチイチ抽象的でプログラミングのスレとは思えないレベルの低さだな ラズパイにWebアプリTornado入れ、そこからモーターを動かしたいのですが、ちょっと質問が
とりあえずTornado経由でモーターのオンオフはできた
https://dpaste.com/EWM78GFRF
24行目のio_expander_test.onでオン
27行目のio_expander_test.offでオフ
io_expander_test.onの中身はモーターを回す単発命令をしてるだけ
このとき「1秒回しては1秒止めるを繰り返す(あくまでも例)」みたいな感じで、io_expander_test.onの中で無限ループさせたいんです
async、awaitを使っているので、無限ループさせてもちゃんとWebアプリが応答できるのは確認してます
問題なのは無限ループさせたio_expander_test.onの中身をどうやって止めたらいいのでしょうか?
マルチスレッドやTornadoのことを調べてみてもよく分からず
ここのページを見ろとかでも良いのでどなたかアドバイスがあればお願いします!
環境は↓
ラズパイ4B
Python 3.7.3
Tornado 6.2 米国年収では、Ruby on Rails は1,300万円。
それ以上なのが、AWS Solution Architect の資格で1,400万円。
今は円安で、1,800万円ぐらいだろう
AWS Certified Machine Learning - Specialty は、
機械学習の資格で、これも高いと思う
まあ、GCP にもあるのだろうが、資格の本が売っていない >>723
機械学習ならコーセラはどうなの?
個人的にはコーセラ派なんだが。 >>709
かよちんは、大学生でプログラミングスクールに通って、
Ruby on Rails のポートフォリオを作って就職した
そこで運用を1年やって転職した。
新しい会社では、Django をやっている
すごい成長力 >>723
その機械学習の資格って日本では意味ないかね?
取って損はないから取ろうかと GAFAMの給料が3000万とか言われてるけど
そりゃ普通のエンジニアですら1000万以上貰えるんだから別に高くもないよな
むしろ適正
日本がやば過ぎる Cloud Architect
Cloud Database Engineer
Cloud Developer
Data Engineer
Cloud DevOps Engineer
Cloud Security Engineer
Cloud Network Engineer
Google Workspace Administrator
Machine Learning Engineer
gcpって資格多すぎやろ・・・w
どれが深層学習なんだ?? ちゃんと貯金すれば普通に数億すぐ貯まるよな
マジで羨ましい >>731
資格も大切だけど、資格を作る方が楽しかったりするぞい!
pythonだって国内だと資格いくつかあるっしょ。
あとは海外にもpython系の資格はあるけど。
どうせなら作った方が楽しいと思うんだけど 日本は一旦雇うと解雇できないから、米国の1/3〜1/4 ぐらいの給料になる。
米国は全員がフリーランス
そりゃ、AWS の機械学習の資格は確かでしょ。
文系では、ほとんど意味が分からず無理
文系の馬鹿が一発逆転できるのが、Ruby on Rails だけ
だから皆、YouTube で有名な雑食系エンジニア・KENTA の初心者向けサロンへ入ったり、
くろかわこうへいのAWS サロンへ入ったり、学校・合宿などへ行く クビになるかもしれないから努力続けるとか、
努力の甲斐あってもっと高い給料の所に移れるとか、
努力できる奴はいいけど、安くていいからクビにしないでという方が多数派で、
そっちに合わせたらこうなった
その後、仕組みを変更して、安い上にクビにもなるという最悪状態に GCP にも資格があったのか。
本屋には、AWS, Azure の本しかなかった
AWS では、Solution Architect が最も重要で、
その次が、Associate 3冠。
3冠は、Solution Architect と、開発者・運用の2つ
Specialty には機械学習などがある
12冠すべてを持つジェダイマスターは、日本に15人ぐらいいるらしい。
クラスメソッドに8人、NRI に何人かいるとか >>735
awsを取得して何かメリットある?
例えば独占業務があるとか、それとも名称独占なのか?
独占業務ならいいけど。名称なら資格なくても出来るならねぇ。
awsで深層学習ってそもそもあるっけか? みっつけた!
AWS Deep Learning AMI
これがあるみたいだね! https://dpaste.com/95GZ6ZMC4
pygameでさめがめ作っているのですが、
基盤データを格納している二次元リスト board が更新できません。
正確には縦一列削除したら左に詰めるよう(align関数)しているはずなんですが、
なんでか左詰めがうまくできません。
print(*board)
すると、要素を削除してデータ更新してうまく動いているはずなんですが、データ自体
の更新がデータ上されてないです。考えたんですが原因がちょっとわからないです。 >>738
boardは30x20なのに見えてるのは15x10 ブラウザでpygame動かす環境とかありますかね? ない
ゲーム作りたいんだったら時間の無駄だから今すぐJavaScriptやUnityに乗り換えたほうがいいよ 別にお前みたいに選択と集中する必要は無いんですよ
能力的に余裕あるから 内部的にpythonはあるけど表面的な部分は別の言語や開発環境使うべきだぬ
ゲーム通じてMVCみたいなの学ぶとかはできるけど。
あとren'pyだな。そもそもpygameは開発頓挫してなかったっけ pixi.jsがおすすめ
ブラウザゲームはほぼこれだよ >>739
あ、本当だ。全部消したと思ってたけど残ってたわけですね。
ballSizeがボールの半径で、半径で割ってたから2倍になっていたので
vBallNum = int(height/(2*ballSize))
hBallNum = int(length/(2*ballSize))
と直径で割るようにしたら直りました。 誰かPCPP-32-2 – Certified Professional in Python Programming 2
これもってるひといる?
ニーズある?あるなら受けるけど。 プログラミング初心者がとるなら評価できるけど
どういう応用したとかポートフォリオに勝るものはない
習得容易なPythonはもはや文房具だから 社内にPythonめっちゃできる中国人居るからPCPPについて聞いてみたんだけど
資格取るよりlinkedinの受講証明のほうがいいって言われた
linkedinって初めて聞いたけど海外だと有名なのかね >>749
djangoでマッチングサイト作るのはどう?
それもgps機能つき。これなら何キロ圏内に相手がいるとかいないとか。
便利かなぁと。
>>750
linkedinは何年も前に登録してる。
あれは繋がりを求めたり人材のマッチングとかだよね。
あれは海外向けですよー。 大手企業で4〜6年以上エンジニアとして働いた経験があるとかが一番転職で強い
資格、ポートフォリオ、学歴とかはあくまで良いスタートダッシュを切るためのもの >>750
英語圏だとlinkedinないとビジネスできない Dashの使い方ってここで聞いても大丈夫ですか?
一つのコンポーネントを複数のコールバック処理のinputに登録した場合、実行される順番はどこで決まるのでしょうか? >>755
ありがとう
pyautoguiなんか有ったのか
スクレイピングで対応出来ないヤツは
これで捗りそう まちがいじゃないけどアンダーバーとか書かれてると警戒しちゃう すいません、朝からやっているのですが よくわからなくなってきたので質問させてください。
パスワードをハッシュ化するプログラムをつくっています。
参考サイトをみて以下のプログラムを動かしています。(シンプルなプログラムのソースです)
https://engineer-lifestyle-blog.com/code/python/password-hash-value-generator-passlib-bcrypt/
"12345678"というパスワードをハッシュ化しているのですが、出力されるハッシュ化された文字列hashed_password が実行するたびに違うんです。
同じだと思い込んでいたので、頭が混乱しています。
私の思い込みは間違っているでしょうか。
あぁ。つかれた。
# pip install passlib
# pip install bcrypt
from passlib.context import CryptContext
pwd_cxt = CryptContext(schemes=['bcrypt'], deprecated='auto')
class Hash():
def get_password_hash(password: str):
return pwd_cxt.hash(password)
def verify_password(hashed_password: str, plain_password: str):
return pwd_cxt.verify(plain_password, hashed_password)
password = "12345578"
hashed_password = Hash.get_password_hash(password)
print (hashed_password) すまん。だれかくだすれの次スレ立ててくれ。俺には無理だった。 このスレとくだすれって何が違うの?
正直片方でいいと思ってる > 「お勉強」スレのほうには書き込めない超低レベル、
> もしくは質問者自身何が何だか分からない質問を、
> 勇気を持って書き込むスレッド
だということで、それなりに意味はありそうだけど?
自分も使い分けしてるし たてたつもりなんだが(エラーは返っていない)
まだ表示が出てこない 10分以上経過しているけど、まだ表示されないと言うことは立てるの失敗しているのかも
重複おそれずもう一度立ててみた方が良いでしょうか? 駄目みたいだ
書き込み待機 - mevius.5ch.net
6954 Banned[900:9e7784586028b00971d338e73d36074a];
(・∀・)オルスバン ε三三三三(; ・∀・)鯖マデオツカイ
[プログラム]: HTTP/1.1 200 OK
( ・∀・)(・∀・ )オツカイオワリ 三三三三3
>6954 Banned
これって拒否られたんだろうか >>760
>>761
ありがとうございました。
助かりました。 配列aと配列bがあって、c[i]=max(a[i],b[i])となる配列cを作りたいです
c=max(a,b)とやっても、
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
と出てしまい、うまくいきません
forで回せばできるんですが、時間がかかってしまいます
配列ごとごそっと計算できる方法はありませんか? >>771
np.maximumもしくはnp.fmaxはどう 配列aが[1,2,3]で配列bが[3,2,1]のとき配列cは[3,2,3]になるって意味ならforが遅いとかはなくて何でやっても速さはそう変わらないでしょ
結局a[0]とb[0]の比較、a[1]とb[1]の比較…をしなければならないので計算量が変わらないじゃん
強いて言えばそのパターンなら個人的には内包表記とzipでやるけど速度じゃなくてわかりやすさでだけどね >>774
んなことはない
生Pythonとnumpyで同じ計算させたら計算量は同じでも後者の方が2桁は速い numpyはcだから速いと思ってるんだろうけど場合によっては生Pythonのほうが早いこともあるぞ
生Pythonだってcだからな まぁ論点がズレかかってるから
どうでもいいことで言い合いするなよ もしかして
map(max,a,b)
list(map(max,a,b)) # どうしても配列化したいなら
ほぼネイティブコードになるけどnpとの差はわからん Cが速いのは静的型付けだからでしょ
静的に計算できるようにする為のオーバーヘッドもあるので、
それがpythonが型で悩んでる時間より長ければ遅くなる Pythonはどんな処理であれコードの実行そのものが基本的にビチグソ遅いから、いかにそれを減らすかが重要になる
その意味で、タイトなループ(高周期で回るループ)をPythonで書くと必然的にPythonコードを多く実行するため、重い処理ではボトルネックになりやすい >>773
fmaxにしました
ありがとうございました >>774
python そのもので for ループすると無駄な object 生成消滅が出来過ぎ超遅い
少なくとも >>771 の用途であれば >>773 が正解 >>777
>生Pythonだってcだからな
その認識は改めろ mapは値を使うときになって評価されるから計算時間がばらけて実質速くなることが多い。時間の測り方に注意が必要 >>777
numpyはblasっていう行列演算のライブラリ使ってます
内部はSIMD命令とか特殊なCPU演算を駆使してるから生のCとは全く違う
あとpythonの数値オブジェクトであるPyFloatObjectはヒープから確保されるのでありえないほどメモリを食います
とにかく素のpythonは数値を扱うのは苦手 そらクソデカ行列流し込んで計算するなら速いだろうけど… 不勉強で申し訳ないのですが、質問です。
PDF文字編集を自動化したく、下記ページを参考に
pdf-redactor を導入したいのですが、簡略にかかれているため、
どうやって導入したらいいかわかりません。
https://qiita.com/wutai00/items/097bb678451564412c68
どなたか導入手順をご説明いただければ幸いです。
環境はPython 3.9.1 をインストールしています。
作業はJupyterNoteBookを使っています。
よろしくお願いします。 たまたまQiitaでみつけたんだろうけど何故そこで留まるのかがわからん
最初に貼ってる公式のURLは完スルーなの? numbaで20万倍の速度があるっていうデータがあるけど
20万倍以上のデータがあれば教えてほしい。
速攻で真似したいもんw pythonでクレジットカードの支払いの実装ってどっかにコードない?
VISA/MasterCard、JCB/Amex/Diners、PayPay/LINE Pay/Merpay
セブンイレブン/ファミリーマート/ローソン/ミニストップ/
セイコーマート/デイリーヤマザキ
とりあえず上記の支払いが可能になるコードあればおしえてくんろー!
Wordプレスでもいいし、他のアプリでもいいし。
プラグインでもいいし。なかなか上記全ての対応ってないんだよね。
(無料で探してます。有料を除くw)
WooCommerceとかしかないのかしら? >>802
なにいってんのぉ〜!!
差別、侮蔑用語はダメね!だめだめ!
普通にオンラインスクールやで!
ただteachableだと支払い方法が制限があるから
だからワードプレスにしようと思ってる。
クレジットカードとコンビ二払いがあるなら便利じゃん。
あとは分割払いができるのもメリットやと思う。
「Issuer Acquirer」「CAFIS」「Swift bank」「ACH」「全銀ネット」
これらかしら? 決済ベンダーが提供するAPI使う必要があるのは理解してるのかな? >>806
単に数パーセントの手数料はオッケー。
無料っていうのは決済システムが月10万とか20万とかかかるのが
無理ってこと。
>>807
理解してるよ。api型ってやつね。 クレカが使えるようになるには、お前さん自身の信用性が審査されるんだが、耐えられるか?
自分のクレカを作るより大変だぞ >>809
そうなの?
以前、ウェブサイトの構築をクラウドで頼んだんだが
普通にクレカの5種類対応のサイトができたんだが。
今は難しくなってるとか? クレカ情報って誰が管理するつもり?
クレカ番号、セキュリティコード、氏名、有効年月日
これ漏らすと不正使用されるけれど、弁済出来るだけの資産持ってる? あれ。こんな記事でてきたぞ!
2022年3月3日 14:28
Stripeは3日、日本発の新機能として「コンビニ決済」を提供開始した。
対応するコンビニエンスストアは、ファミリーマート
ローソン、ミニストップ、セイコーマート。
セブンイレブンやデイリーヤマザキには対応しない。
stripeやるじゃん!これでいけそう。
stripe一択じゃない?違うかな?他にお勧めがあればおしえてくんろー! >>808
理解してるなら決済ベンダー決めて
決済ベンダーからサンプルコードを貰え
あとはPython関係ないからスレチ Ruby on Rails の決済機能は、Stripe が多い
https://github.com/abhaynikam/boring_generators
これは、退屈な初期化を自動で行うコマンドを、誰かが作っている。
Install Stripe:
rails generate boring:payments:stripe:install
YouTube で有名な雑食系エンジニア・KENTA は、No Code も使っているとか scipy.sum使ったら
「SciPy2.0.0で削除されるぞ」って警告出たんだけど
numpyのsum使えって話なの? >>812
とりあえず申し込んでみたら?
必要な審査とか書類求められると思う
あとWebサイトの疎通確認とかもろもろ必要な手順教えてくれるよ 以下の様なデータフレームから
df = pd.DataFrame([["a","b","c","d"],["a1","b1","c1","d1"],["a2","b2","c2","d2"]])
df=='b2’の値のある行のindexを取りたい時はどうしたら良いのでしょう? >>820
どのカラムをチェックするかは決まってる?
それともすべてのカラムの値がb2かどうかチェックしたい? 全てのカラム値をチェックしたいです。
書き忘れましたが、列のindexも欲しいです。 queryで結果をto_indexすりゃ良いだけだろ >>822
np.where(df == ‘b2’)
結果は行のインデックスの配列と列のインデックスの配列のタプル >>824
ありがとうございます。まさに希望通りです。
pandasの抽出例は行や列指定のものばかりで、
なかなか思う方法が見つからなかったので助かりました。 >>811
クレカでも銀行口座引落でも書類審査で通っちゃうのが日本クオリティ
君が思ってるよりは相当甘い >>829
おまえも在日だけどな
日本人なら正しい日本語使えよ Pyhtonでは、while文はあまり使わない方がいいんですか?
for文と違って無限ループになるリスクがあるからだそうですが なんか最初は使いがちだけど
すぐ使いたくなくなる
可能な限り避けたくなるっつーか
無限ループの入力待機とかの専用みたいなイメージ forは最初から数が決まってるか、決まってないけど最後を教えて貰える繰り返し
whileは処理した結果最後だと判るような繰り返し
最後だと判った時に、次抜けますフラグを立てるより、その場でbreakした方が楽なので、
ますますwhileの条件部分が無意味になる 皆さんレスありがとうございます
やっぱりあまり使わない方がいいんですね
というのは、実はそのことは何となく知っていて、コードを書いた時に
なるべくfor文を使うようにしていて、ここはwhile文を使った方が自然かな、
と思ってwhileにした箇所すら、「forの方がいいんじゃない?」と
指摘されてしまったので、もうwhileは悪、くらいに考えるようになってしまいました… 言われてみると確かにwhile使う時ってwhile True:ばっかな気がするな セイウチできるようになって使う機会は増えたように感じる while 使わない方が良いなんて初めて聴いたわ
while True: 大歓迎 >>837>>839
そのループは何を条件にして抜けるの >>834
>whileは処理した結果最後だと判るような繰り返し
解りやすいなどこの誰がそんな説明してるの? >>842
間違ってるよ
それは他言語でいうとこの do-while >>841
そういうまさにwhile Trueの使いどころみたいなのではなくて、終了条件が明確にある場合でもwhile True使いますみたいな話じゃないの >>840
用途次第だけど例えば処理対象になる数値がDataFrameの中から無くなった時とか すいません質問します!
皆さんはPythonを何に使ってますか?よろしくお願いします! >>847
ここはPythonの勉強スレだからなあ
アンケートはどうなのって感じ 型アノテーションがよくわかりません
PILで読み込んだ画像を引数に受け取る関数を作っているのですが、画像の拡張子によって型が異なります
例えば、jpgの画像なら
PIL.JpegImagePlugin.JpegImageFile
を受け取りまする
どの画像も PIL.ImageFile.ImageFile を継承している(多分)のでこれを書けばいいのでしょうか? たびたび失礼します
set型に対してsampleメソッドを使ったら警告が出てしまいました
以下の文です
shuffle_list = random.sample(card, len(card)) # cardはset型
今やsampleメソッドは使わない方が良いでしょうか? >>850
色々なものを受け取る可能性があるなら(通常pillowはそうだが)
from PIL import Image
im :Image.Image
が定石 >>851
せめて警告内容ぐらい書け
答える側になったつもりで文章読み返してから書き込め >>851
警告文に「非推奨です」って書いてあるやろ
英語ぐらい読め >>855
それが出来たらこの程度の質問なんか絶対しないと思うわ ご迷惑をおかけしています…
>>853
リファレンスによると上の書き方は3.9以降では非推奨のようなのですが、
他に良い書き方が思い当たらなくて困っています
>>855
はい
DeprecationWarning: Sampling from a set deprecated
since Python 3.9 and will be removed in a subsequent version.
です
また、リファレンスのsampleメソッドの項目内で、
バージョン 3.9 で非推奨: In the future, the population must be a sequence.
Instances of set are no longer supported.
The set must first be converted to a list or tuple,
preferably in a deterministic order so that the sample is reproducible.
と書いてありました
それぞれ訳してみましたが、どういうことなのかイマイチ分かりませんでした >>858
特に困らないなら
警告通りにsetをlistかtupleに変換してからrandom.sampleを使えばOK >>858
じゃあまず日本語と英語の勉強しよう
プログラムなんかやってる場合じゃない
sampleの母集団(対象)はシーケンスであるべきで、setのインスタンスはお断りです
setは予めリストやタプルに変換してからサンプリングしてください
シーケンスとインスタンスの意味はググれ >>858
countsが追加されたのでシーケンスしか受け付けなくなったと
setはインデクシング不可の順序なしコレクションゆえに
listかtupleへ変換して渡せって事でしょう ふと思ったけどなんで整数型ってシーケンスじゃないの? 答えてくれた方、ありがとうございます
指示通りにやってみようと思います 英語は、DeepL で日本語に訳して読んでから、質問しろ >>379
pythonでwhileの実行の遅さを指摘する人がいた 関数がN個あって、呼び出し関数に引数kを与えたら
順繰りに関数を呼び出すことをしたんだけど可能?
kansuK→kansuK+1→・・→kansuN→ kansu1→・・→kansuK-1
def kansu1:
def kansu2:
def kansuN:
def yobidashi(k)
ret=kansuK
ret=kansuK+1
N個繰り返す kansues = [kansu1, kansu2, ... kansuN]
def yobidashi(k):
__for i in range(N):
____ret = kansues[i-N+k]()
動かしてないから正しいかはわからん >>867
getattr()とかのメタプログラミング機能を使えば簡単にできるけど
設計を見直したほうがいい可能性のほうが高い >>867
素人はそんなこと考えるんだな
とりあえずやめとけ >>850
君は継承のメリットの一つに気付いたようだ
おめでとう >>867
ret = kansuN(kansuN-1(kansuN-2(...kansu2(kansu1(k))...)))
じゃないのか Pythonのif文で複数行を1行に書くことって出来ますか?
他の言語でいう
if 条件式: 処理1; 処理2;
みたいに書きたいのですが (2^((2^(115-1))-1))*(2-(2^-4294967180))
が、誤差が出たり桁あふれしたりで計算できないんです。
誤差
https://ideone.com/MDO46W
VscodeのpythonではOverflowError: Python int too large to convert to C ssize_tが出る。
Vscodeでもideoneでも、(2^((2^(35-1))-1))*(2-(2^-4060))くらいなら計算できます。
どうしたら計算できるでしょうか?
とりあえず先頭100桁だけです。 >>876
整数計算なのにdecimal使う必要あるの? Vscodeのpythonで
t = ((2**((2**(115-1))-1))*(2-(2**-4294967180)))
を実行したらメモリエラーが出た。
ideoneでも
Time limit exceeded #stdin #stdout 5s 1326060KB
と出る。 decimalだとますますメモリ使うし時間もかかるだろうから、そのエラーはdecimalじゃ解決できないと思うよ >>881
へー知らんかった
代入してbreakとか短いやつなら可読性落ちないだろうし使ってみよっと セミコロンはpythonの中で何だと思われてるんだ 読みやすい10行より読みにくい1行の方が可読性が高いという人もいる ステートメント終了のお知らせとして多くの言語で使われてるッテ意味な
んちんちんちんちん これは個人の好みだけど
if cond: break
def f(x): return x*2
こういう改行を省略して一行にしたものは嫌い Python入門: 基礎から始める集中講座
6:29:47
422 回視聴・2022/08/31
freeCodeCamp Japanese シェルスクリプトとして書くときにセミコロン使うと一行で続けて書けるから便利 まぁ自分で使う分には好きに書けば良いけど
それを自分以外に使わせる可能性が少しでも有るなら規則に則った方が良いわな flaskからhtml上のアクションでpython処理
こっからAjaxでhtmlの更新かけたいんだけどよぐわがんにゃい 今PythonとDjangoをヒィヒィ言いながら勉強してるんですけど
PythonとDjangoの難しさとPHPとLaravelの難しさを10段階で表したらどのくらいですか? > ajax
参考になりそうな奴を提示してあげたいけど
jqueryがどうとかいう、いま令和だよ?って感じのサイトしか出てこないから止めた 助かります!!
flaskに対してイベント起こせばいいんだろうけど、調べてもまったくピンとこないんすよね… >>897
YouTube で有名な雑食系エンジニア・KENTA は、下の動画で、
未経験者はシェアが高い、Ruby on Rails でポートフォリオを作れと言ってる
Django, Laravel はダメ。
特にKENTAは、PHP, Scala をオワコン認定したので、使わない方がよい
未経験からのエンジニア転職の必須教養【技術知識編】
www.youtube.com/watch?v=Q1c09rrhTjo
Railsは、KENTAのサロン以外にも、RUNTEQ、東京フリーランスのデイトラなど色々ある みんながやってることをやっても食いっぱぐれる
ニッチを狙え Ruby on Railsは将来性のないプログラミング言語の記事でよく挙がってたけどな 上位だったものではRubyとGoが墜落2大候補。
そ あんま関係ない話題だけど最近windowsのpowertoysに入ったText Extractorって機能がめっちゃ便利だな
動画で解説するタイプのプログラミング講座ってコピペしにくいのが難点だけど
これさえあればスクショ撮るような感じで画像からコピペできる RoRか
個人的には悪くないと思うんだけど
採用率は依然として低いな
開発時にちょっとした罠が
あちこちにある
まあ他の言語でもそうだが Ruby on Railsの良さが分からん。
誰かわかる?
pythonとruby比べてrubyのメリットある? Railsは伝統的なSSRアプリの標準的な開発ワークフローに対して徹底的に最適化されているから、一昔前までは確かに生産性が高かった
一方でSPAでは無用の長物となってしまい、もはや価値はない >>907
Djangoと両方経験すれば嫌でもわかるぞ Windowsマシンでselenium/Chromeを動かしてファイルをダウンロードすることをしてるんだが。
chromeのダウンロードフォルダーの設定のパス名に"/"と"\"を混在するさせると動かなくなった。
#chromeのダウンロードフォルダーの設定
chrome_download_folder=os.path.join(os.path.dirname(__file__), "dat")
#バックスラッシュに変換しないと動かなくなった
chrome_download_folder = chrome_download_folder.replace('/','\\')
"/"と"\"を置換するのてもっとos.path系の命令でふさわしいのがあるの?
とりあえず上のやつ動いてるけど。 【半年間使ってわかった】PythonのwebフレームワークDjangoを学ぶメリット・デメリット
www.youtube.com/watch?v=783JIyyyxMk
かよちんの動画でも見れば?
彼女は学生時代に未経験で、Ruby on Rails でポートフォリオを作って就職した。
そこで1年運用をやって、開発したいから転職した。
転職先で、Django をやってる
未経験者には、日本語情報が多いRailsが簡単。
Railsチュートリアル・Railsガイドとか、黒田努の3冊の本など、勉強環境が揃っている
Djangoから始めると難しくて、かなりの時間の無駄だし、
そもそも、文系には不要
ほとんどの会社の普通のウェブ開発で、Railsではなく、Djangoを選ぶ理由がない。
KENTA も言ってるけど、面接でDjangoを選んだ理由を説明できないから無理
余程、AWS の機械学習の資格を持っているとか、
大学院数学科卒とか、バリバリ理系の証明書がある人だけ。
文系じゃ無理 >>897
Laravelは依存性注入のようなことをかなりやっていて、ソースコードを追いづらくて難しいと思った。Ruby on Railsと一緒で、決められたことやるにはいいが
逸脱しようと思ってフレームワーク調べようとすると辛い感じがした。
Djangoの方が素直だと思う。 YouTube で有名な雑食系エンジニア・KENTA の動画
未経験からのエンジニア転職の必須教養【技術知識編】
www.youtube.com/watch?v=Q1c09rrhTjo
奇をてらって、Laravel, Django を選ぶな。
転職先が多い、Ruby on Rails が有利
キャリアパスも、Rails → Go だけ 何を選んだってそれで10年は食えない
手に職つける的な考えならこの業界は避けるのが吉 >>915
ありがとうございます。Djangoの道を迷わず進みます。 >>918
コンピューターサイエンスしてなきゃそりゃそーよ >>918
それをやるには全てマスターすれば良い
あとデザインとマーケティングも追加で
今はフルスタック+デザイナーとかが出来る奴も生まれてる MVCモデルとMTVモデルか
なんかviewの示しているものが違うんだよなあ Djangoでウェブアプリ公開してみました。
そのあとfaviconを設定したくて
.icoファイルをWEBサーバー側に保存したいのですが、
どうしたら良いのか教えてください
デプロイ後に画像などの静的ファイルを追加したい場合
どうするのが良いのか教えて欲しいです
(いくつか方法があるのでしょうか?) >>925
staticファイルを置くディレクトリを決めてそこに置きなさい a = (1, -1)[5 % 2 == 0] * 10
てどういう計算をやってるんですか?
a=10となりますが。 >>927
(5÷2=余り1)≠0⇒False≒0って事でタプルの0番目を取得して掛ける10 だとしたら、なんでハナから丁で書かないんだ。
甲 a = (1, -1)[5 % 2 == 0] * 10
乙 a = (1, -1)[false] * 10
丙 a = 1 * 10
丁 a = 10 要は濃度2の配列から0番目か1番目の要素を取ってきてそれに10かけるわけですな。
夜遅くにTHXです。
てっきり(1,-1)て座標なのかと思った。
グラフック系のプログラムで書いてあったので。 >>926
ありがとうございます。
static¥Img¥favicon.ico
とした時に
favison.icoを入れる方法ってどうするんですか?
ssh ***@ipアドレス
から上記のimgディレクトリまで移動したあと
ローカル環境からfavicon.icoファイルを
入れるのってどういうコマンドなんでしょうか? >>925
python manage.py collectstatic >>911Djangoの方が使いやすいことも判った
SPAでもルーティング描けば使えるし >>929
もう、アルファベットも算用数字も使っとるやないかというツッコミ >>932
それはimgフォルダにfavicon.icoが置かれた後
のコマンドですよね。
その前のfavicon.icoをimgフォルダに
入れる方法が知りたいのです。。 VSCode の拡張機能・Remote - SSH(Remote Development) とか、FileZilla
他には、PuTTY もある。寺尾のTeraTerm は古い。
RLogin と言うのもあるようだ >>935
ファイルも含んだgitレポジトリ作って
サーバー側でクローン作りゃええ pilのimage.saveってフォーマットによって引数が変わるのです
match im.format:
__case 'JPEG':
____im.save(path, quality=85, subsampling=0)
__case 'PNG':
____im.save(path, optimize=Trur)
__case 'WEBP':
____im.save(path, quality=80, lossless=True)
...
いまはこういうふうにゴリゴリ書いてるんですが
フォーマットが増えると読み書きしんどいです
なんかうまい書き方ないですか
im.save(path, *save_options(im.format))
みたいな。わからんけども 確かにハードコーディングしない方が良さそう
定数としてim.formatで参照できる辞書を用意してそれをベタ書き代入するしかないんじゃない save_optionsメソッドの中身がそのmatch-caseなら見通し悪くはないけどな
im内包したクラスでよゆうで感心分離できる >>942
フォーマット毎にオプションの指定の仕方が1種類ならいいんだけどそうとは限らないからね
ハードコーディングのほうが読みやすいかもしれん >>936
vscodeでTeraTerm(ssh接続)が使えたらいいなと思ってRemote - SSH入れたんだけどコレジャナイ感がある。
ウインドウ2つに増えないで欲しい。
理想は
ファイルはローカルファイル表示で
ローカル用のターミナルとsshターミナルにしたいんだけど無理かな? >>941
いくつかのキーワード引数に関数の返り値を渡す ってできるのけ? >>946
この場合なら関数の戻り値が辞書なら出来る
https://note.nkmk.me/python-argument-expand/
ゴリゴリ書くのも視認性が悪くなくていいけど、
条件がフォーマット以外にもあるなら、
ゴリゴリ部分を関数に分離して辞書で返すのもいいかもね
純粋に辞書用意してキーで引くだけだと、可読性が悪そう
それがベストなケースもあるとは思うけどね opt = {
'JPEG': {'quality': 85, 'subsampling': 0},
'PNG': {'optimize': Trur},
'WEBP': {'quality': 80, 'lossless': True}}
im.save(path, **opt[im.format]) 設定を、YAML・JSON ファイルにまとめて、それを読み込んだ方が良さそう
Ruby なら、それらをRubyオブジェクトに変換できる >>939
Git操作に自信がなかったので
今回は見合わせました。
最初に浮かんだのがこの方法だったので
Git勉強してから試したいと思います。
>>940
scpコマンドは知らなかったです。
試してみたら、無事リモート側へコピーすることが出来ました。
python3 manage.py collectstatic
で反映させることも出来ました。
お世話になりました! グレースケール画像にopencvのpolylinesで赤線をつけたいのですが、引数にカラーを設定しても白線か黒線しかつきません。
どのようにしたら赤線をつけることができますでしょうか? そらカラーにしなきゃ"赤"線は表示されないでしょ。 カラー画像に変換してもpolylinesはダメでした。他の線なら出来るものもあるらしいので試してみます。 質問させてください
サイトセブンをいうスロットのデータが載っているサイトからpythonを使ってスクレイピングをしてデータを集めることを外注にて頼みたいと思っています。
集めたい内容の詳細ですが、
・好きな店舗から
・好きな機種を(新機種対応)
・〇〇ゲームに当選して、その出玉の枚数
です。
これら3つのことがpythonでできることは分かるのですが問題は新機種対応です。
一度ツールを作成してもらえれば新機種にも対応したデータを取ることが可能でしょうか?
また、作れるのであればこれを作るのにみなさんならいくらで作りますか? もし出来ないんだったら自分で勉強してでもやるつもり スクレイピングはサイト側がちょっと変更しただけで対応する必要があるから
自分で勉強するのがいいよ 雰囲気からデータ販売してそうだし訴訟リスク&賠償額が高騰する可能性があるからまともなやつなら手出さないと思うぞ >>958
レスありがとう
頑張って勉強するわ
Pythonの1年生?って本買ってあるからまずはそれをやる
600時間あれば作れるようになるかなぁとみてる >>960
レスありがとう
確かにそれはあるかも…… 今Python勉強してるけどGooglecolabって何か分からな過ぎてモヤモヤする
Pythonだけが使える環境を勝手に用意してくれてるってこと?
あと実行してくられるのはいいんだけどあっち側で処理してるの?
それともこっち側のCPUGPU性能に依存してるの? >>965
そういうことか
サンクス
スッキリした >>967
こう見えて1浪して神戸大学卒業してるよ
鬱になったんだけどそれからは頭やられて記憶力も低下したが……
それでも頑張りたいという熱意はある >>969
確かにそうだよね
1日2時間を毎日は頑張りたい
パチプロやってるが1日は休みをとって8時間やって今年中には身につけたいと思ってる
要領悪いから600時間で出来ないかなぁ……と考えてるよ >>970
余計なお世話だが、パチスロで勝ってないならキッパリ辞めて勉強しようぜ プロならパチスロで勝てないってことはないだろ
天井期待値狙いとか狙ってれば一応安定はする
ただ、パチプロよりエンジニアの方が社会的地位も年収も将来性も上ではあるしどうせならパチプロ辞めた方が良い気もする >>970
パチプロ儲かる?
5号機までディスクでスロプロやってたけどコロナ以降勝てなくてやめてしまったわ >>971
月50万前後は勝ってる
今はこれで生計たててるからね
だけどパチプロで人生終わるのも嫌だと思ってスロットのデータを集めて販売する事業をおこそうとしてる
ちなみに友達と一緒にやる
勉強勧めてくれてありがとうな
やるからには中途半端は嫌だから今は稼働以外の時間はPythonの勉強をしてる
稼働もこれからはあんまり遅くにならないようにして、勉強時間を増やす >>973
時給2000円~2600円程度
月の稼働時間が250時間くらいだから月平均は今年は50万前後
去年は月平均70万あった >>972
パチスロに関することでPythonが必要だからスロットは辞めないよ
データを集めて記事を販売する仕事をするわけだが実際に打ってみないことには分からないしね
後はアダルトアフィを相方がワードプレスでやってるんだが来年の3月で仕事を辞めるんだよ
で、お互い教え合いながら事業にする計画を立てている >>977
いいのかw
でもやるからには真剣に勉強するよ
今はPython1年生って本を勉強中
すげー分かりやすくて逆に怖いくらいだよ
スクレイピングハッキングラボって本で挫折したからね…… >>975
エンジニアなら半分の稼働時間で同じくらい稼げるぞ
って思ったけどパチプロは換金した金を確定申告してないだろうし普通にエンジニアより金持ってそう >>978
自分にあった本があって良かった。
勉強する人は素晴らしいと思います。頑張ってくださいね。 Progateで修了してからUdemyで教材漁ってたら初心者入門とか言いながらいきなり難しいのやらされたわ
腹立つ 難しい状況に直面したときは、面白くなってきたぜ、ってぐらいに思えないと職業ソフトウェアエンジニア向いてないと思う
もちろんデスマーチとかで体力精神を消耗してるときは別だが、
訳わかんねーけどいい勉強のチャンスだから徹底的に調べて理解して問題解決しよう!って気持ちがないとやってられない気がする
趣味でも一緒かもしれないけど >>979
エンジニアってそんなに稼げるのか……
俺の場合は自分の立ち上げる事業に使うだけだけどねw
仮に事業が失敗したとしてもさらに勉強してフリーランスとして生きていくことも可能だなと感じたね
金はたいして持ってないよw >>980
ありがとうございます😢
稼働しながらにはなりますが必死でやりたいと思います! >>982
難しい状況ほど面白いものは無いと思っている
スロットでも考察が大好きで誰もが気づかないようなことを考えてnote書いたりしているからね このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 112日 6時間 31分 4秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。