くだすれPython(超初心者用) その47【Ruby禁止】
レス数が1000を超えています。これ以上書き込みはできません。
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
↓等のてきとうなソースコード用うpろだに貼ってきてください。
スクショをImgur等にうp といった 手抜き(クソ行為)禁止。
ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう
◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。
◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/
〇前スレ〇
くだすれPython(超初心者用) その46【Ruby禁止】
https://mevius.5ch.net/test/read.cgi/tech/1577948214/ >前スレ996 >>1
超乙!
前スレ972はウルトラ無能 ・ ,,..--―-、
/, -----、.ヽ, / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| i_,,,,_ __゙l | / 世界、糞スレ発見!
,!、i'゙-‐-: '-、|/ | >>1はボッシュート!
/'') ..., '‐-‐、.j / __________
/ ,‐!::...`'''''''`ノ  ̄ ̄
_,,,l ;! ::|ヽ、二 イ
, -‐'゙゛ i::.. | .ヽ/;ヽj!`‐-、_
l ノ::. .:|、 .ヽ,:ヽ| <゛~ヽ、
,:''`` ''"゙.|;;:‐''゙|.ヽ、 ヽ;::| / .|゙l
,: ヽ::il;;! ヽ、ヽ| / | :|
i o゚ :`;''゙ ヽ| / | .|
i ..:::::,:::'::::: . |゚ |,,;:->、
`.、__;;/:::::::::: : | !''" |
i ::.:::: : | | .|
⌒ ⌒ ⌒ シュルルル
__⌒ ⌒ ⌒__
/::::::::::Λ_Λ::::::::::::::::::/
/::::::::::(∩;´Д`)∩:::::::/ チャラッチャラッチャーン
/::::::::::::( >>1 /:::::/ スマートpythonプログラミングの、著者である モミジアメ先生の新刊キター
TCP IP本
python関係ないけど
Kindle unlimited入ってる奴は読んどけよ
スマートpythonプログラミングは2についてけっこう尺取られてちょっと古くなった感はあるけど良書 めっちゃ長い文をfor文使って書いた場合と使わずにベタ書きで書いた場合でどれくらい速度比出ますか? >>8
自分で計測しろよ
とりあえず%timeitで十分だろ 今どきFor文のベタ書きとか考えなくていい
適切なライブラリを使う方がよほど早くなる
とくにライブラリが速いCで書かれてる場合 >>9
timeitの使い方がよくわからないんですよね…
%timeitっていうのは、Jupyterを使った場合の処理ですか?
>>10
そうなんですか?
とにかく今はめっちゃ遅いので何とかしたいです
リスト内包表記を試したり、ネットで拾える情報は結構試したんですが速くならないです >>11
先に疑うべきことはたくさんある
無駄なループを作ってないかとか
機械学習とか重い処理をする場合
ハードを増設する必要があるとか ケースバイケースなんで
その質問では解決する前にお前の寿命が来るかプログラムに飽きる >>11
Pythonを使ってる時点でループのアンロールとかほとんど意味がないと思う
オブジェクトやライブラリをあれこれしてないようなコードなら、Cythonにするとかで100倍ぐらい速くなる場合はあるけれど、
Pythonオブジェクト、ライブラリを結局は呼んでるのだったらそこが律速で速くならないかも 線形探索してるとか?
例えば、百万件の中に無いデータを線形探索すると、すべてを見るまで分からないので、百万回。
O(N)
一方、検索インデックス・辞書を使うと、百万件の中に無いデータが、瞬時に分かる。
O(1)
SQL では、B+tree で2分探索。O(logN)
2 ^ 10 = 千
2 ^ 20 = 百万
つまり、20回で分かる 言語やアルゴリズム等で短縮できる
計算時間の方が圧倒的に大きいから
Forのベタ書きは考えなくていいぞ とはいえPythonはC, Java, C#あたりの速い言語グループと比較して2桁遅いので、
アルゴリズムの改善をいくら頑張っても速い言語の何も考えてないバカループにすら勝てないケースが多い
コアでない箇所でアルゴリズムを工夫することを頻繁に迫られるようなら、Pythonを使うこと自体を考え直したほうがいいかも 競技プログラミングみるとc++使ってる人多い
c++と比べたらjavaは遅い部類 競技プログラミングってプログラミングの速度を競うのかと思ってたけど、プログラムの速度か >>23
両方
問題ごとにプログラムの実行時間に制限がある
その時間に収まるように他の人より速くプログラム作れたらポイント高くなる リスト内表記について質問なんですが
こういう代入はリスト内表記はあきらめて普通のforにしないといけないんでしょうか?
それともほかにリスト内表記する方法があったら教えてください
v=[1,2,3]
[c=c+1 for c in v if c==1] ないだろ。
副作用欲しいなら、for文か無理やり関数でやるしかない。
def func(x): global y; y = x + 1; return y
[func(c) for c in v if c==1] >>26
ありがとうございます
無いんですね
副作用は怖いので普通に書き下しします v= [1, 2, 3]
v = [c+1 if c == 1 else c for c in v]
思っていたのと違うかもしれんが numpyとかpandas使えばもう少し気持ち良い描き方がある そもそもc=c+1の部分が内包表記の表現として書けない >>27
>副作用は怖いので普通に書き下しします
プログラミングにおける副作用の意味をググったほうがいいかも
リスト内包表記に書けるのはexpressionのみ
代入はstatementなのでエラーになる (3.8で導入されたassignment expression(:=)は可)
副作用のための処理は内包表記ではなくfor文を使うのが原則
無理やりやればできなくもないがデメリットしかない
v = [1,2,3]
[globals()['v'].__setitem__(i, x+1) for i, x in enumerate(v) if x == 1]
print(v) #=> [2,2,3] >>25
これってもともとのやりたい事は
特定の値の個数を求めること? pip install A で実行できるようになるコマンドA
pip install B で実行できるようになるコマンドB
があって、パッケージAの依存パッケージがprogressbar、パッケージBがprogressbar2のため(どちらもimport progressbarなので)progressbar2をimportしたい方のパッケージBがprogressbarをインポートしてしまってコマンドBがエラーになってしまいます
こういう場合はコマンドA用とコマンドB用で仮想環境を分けて使うものなのでしょうか?
いちいちコマンドを実行するごとに仮想環境を切り替えるのは面倒な気がするのですが、例えば、コマンドA用とB用それぞれにバッチファイル等を作って、仮想環境の切り替えとコマンドの実行を一つのコマンドで実行できるようにしたりするのが一般的ですか?
オススメのやり方があれば教えてください >>34
おらはバッチ切替派だが
その前におまえ1嫁や
Windowsだけがせかいのすべてだとおもうなよ macでtkinterがimportエラーでて解決できなくて泣きそうやわ
ウェブで解決策が色々あるがどれもうまくいかへん
tkinter以外のGUIパッケージでフォルダダイアログだけ呼び出せるのある?
wxはウィンドウ用のクラス作らんとあかんしQtやsimpleはtkinter依存やし
Eelめっちゃええやん!からのpythonのGUI環境はマジクソ!←いまここ MacならMS製なのがネックで未だにVSCodeに移行してない根強いAtom使いも一部いるかもしれないが、
WindowsならもうAtom使ってる奴なんてほぼいないんじゃね いや逆やろ
WindowsはVSという最強かつ世界最高のデバッガを搭載したIDEがあるからわざわざVSCode使う必要性がない
逆にMacやLinuxはまともなモダンエディタがSublimeやAtomくらいしかないからVSCodeが圧倒的
今時SublimeやAtom使ってるのなんて意固地で勘違いしたやつくらいやな あん?このAtomってエディタの話だったのか?
OSのシェアがどうたらの文脈だからプロセッサの話だと思った 素人はともかくプロ開発者におけるOSシェアは
Mac+Linux > Windows
デスクトップOSシェア(StackOverflow Developer Survey 2019)
プロ開発者: Windows 45%, Mac 30%, Linux 25%
素人開発者: Windows 58%, Mac 15%, Linux 27%
開発環境のOSシェア(Python Developer Survey 2018:複数回答可)
Linux 69%, Windows 47%, MacOS 32%, BSD 1% LinuxやMacで開発している現場なんて見たことない
開発用PCはWindowsがデフォでしょ 俺は受託オンリーやけど元請けの素人どもはWindowsやけど実際に開発してるチームメンバーは全員Macやなー
ウェブやアプリの場合やけど.NET環境の業務システムはVS必須やからWindowsやけどそらそうよ Ruby でも、Windows 版Docker ではバグるから、仮想OS でLinux で開発する。
本番環境に一番近いのが、Linux
今までは、Windowsでは、MSYS2/MINGW だが、日本語でバグるから皆、Mac を使っていた
ようやく最近、Windows 10, WSL, Linux で、VSCode の拡張機能、Remote WSLが出たから、
Windows 10, WSL, Linux でも出来るようになった。
WSLでは、日本語でもバグらない
これで次第に、Macから、Windowsへ戻ってくるはず。
でも、完全な互換性は、直接Linuxを使う サーバーに合わせてLinuxにするのは分かるがMacはマジで意味わからん。副業でiOSアプリ作るからか? Ruby では、Windows の開発者は、WSL が出るまでは、いなかった。
Windows, MSYS2/MINGW だと、日本語でバグるから皆、Mac を使っていた
さらに、Windows版Docker でもバグるから、
Windowsでは、仮想OS でLinux しか出来なかった macはtcl/tkをそのまま使えば早いんじゃね? Windows使うと文字コードで苦労する
苦労してからまたMacに戻ってくる Docker のコンテナ名がコンフリクトする時はどうすればいいですか?
$docker container ps
しても動いてるコンテナないんですけど やっぱり具体的に作りたいものがないのに0から勉強するのは脳が拒否反応を起こすなぁ
VBAをやってる時は実利に直結するからあれこれやるのも苦ではなかったが…… >>48
>>50な理由とか
2系までだったころは、Macにデフォルトで入ってるからとか
デフォルトフォントがMacのほうがきれいだとか
予算余ってるからとか
カコイイからとか
かこいいからとか
本体価格が高級だからとか
そんな理由
あとおまけで52も言ってる文字コードの都合 >>55
自宅プログラミングしない奴の言い訳まんまで草www
そもそもプログラミング好きじゃない奴がプログラマーしてることが数ある不幸なプロジェクトの原因なんよね
学習も研鑽もしないから同じ環境でしか開発できないVBAおじを量産してしまう
俺のように楽に結果が得られるならなんでもいいからもっとええのないんか?と楽しみつつ学習してるといつの間にかC++、C#からTypeScript、Pythonまでフロントもバックエンドもなんでもござれのフルスタックの完成なんよ >>35
ありがとう&ごめんなさい
OS関係ない話かと思って...てへぺろ >>46
>本番環境に一番近いのが、Linux
そうそう
サーバが圧倒的にLinuxだからね
でもWindows10のことも書いてて
わりと良いレスだと思う >>55
>具体的に作りたいもの
実感としてそれは大事だね!
今のPythonブームで言えばAIや機械学習が
したいから学ぶっていう人が一番多いかな? スクレイピングとエロ画像の自動収集くらいしかやってね―わ
それが一番プライベートの時間の節約に役立つしな 楽に結果を得る方法を求めて他人より何倍も苦労する訳ですね 苦労なんて発想しかできない脳みそだから低レベルなままなんだって判断できない時点で終わってるってわかんね
好きなら努力が努力じゃないんだからそりゃ差が生まれるに決まってますわ ?
好きでも努力は努力だぞ?
好きこそものの上手なれ とはいうが。 苦労というよりは、単純作業を繰り返したくないから単純作業と自動化で同じくらいの時間がかかるなら自動化していくうちに勝手に覚えるって感じだな
まあ自動化しやすいものを偶々日常的に扱っていることが多いというのが有利に働いていると思うが 質問です
a=[
[1,2,3],
[4,5,6],
[7,8,9],
[10,11,12]]
と
b=[100,200,300]
があるとして(中身の数字は適当です)
a[0,3]=b[0]
a[1,3]=b[1]
a[2,3]=b[2]
というように縦に一部だけ変数を入力するのに
カッコいい方法を教えてください >>67
a[0,3]=b[0]
TypeError: list indices must be integers or slices, not tuple
zip使え >>68
間違えました、すいませんorz
a[0][3]ですorz
zip使います
ありがとうございます >>69
>>> a=[
... [1,2,3],
... [4,5,6],
... [7,8,9],
... [10,11,12]]
>>> a[0][3]=100
IndexError: list assignment index out of range 深いリストをフラットにするのは何?
[1, [2, 3], 4]
↓
[3, 4, 2, 1] # 結果の順番はどうでもいい numpy使わないなら普通にfor文使うケース
縦(column wise)にデータを取り出したいだけならlist comprehension
zip(*list)はtransposeしたい場合に使う
#numpy
a = np.array(np.arange(1, 13)).reshape([4,3])
b = [100, 200, 300, 400]
a[:,2] = b >>71
その例だとまったく深くないんだがw
「リスト フラット Python」あたりでぐぐれ
ちな
「リストをフラットにする作業」を英語で「flatten」っていうっぽいので
日本語使った検索で気に入る結果が出ないなら
「flatten python」みたいにしてぐぐれ (追記)
unnestも、キーワードとして使えるのではないだろうか。 >>71
from more_itertools import collapse
list(collapse([1, [2, 3, [4, 5]], 6]))
#=> [1, 2, 3, 4, 5, 6] >>71
a=[1, [2, [3]], 4]
b=[int(x.strip('[ ]')) for x in str(a).split(',')]
print(b) >>75
横レスだけど
こんな便利なもの(pip install more-itertools)あるのぬ! for n, m in zip(a, b): n[2] = m >>67
import numpy as np
a=np.array(a)
b=np.array(b)
a[:,2]=b plt.subplot(1, 2, 1)
plt.title('test1 score')
plt.subplot(1, 2, 2)
plt.title('test2 score')
みたいにサブプロットのグラフ毎にタイトルをつけたあとに
サブプロット1,2共通のタイトルNameを最上段、真ん中に表示させたいんですが、
なにかいい方法無いでしょうか?
Name
test1 score test2 score
graph1 graph2
みたいな感じです。 Name
test1 score test2 score
graph1 graph2 ねぎ式? タンブラー@ohtsuka
パートナーさんとの面談で、同僚が「ぴとんも出来るの?
ぴとん」とか言っていたのでなんだそりゃと思っていたらPythonだった。
恥ずかしのでやめて欲しい。 >>80-82
上の方か前スレに、誰かが任意の場所に文字列入れる方法書いてくれてた オブジェクト指向の勉強してるのですが、外部から新規プロパティ作れるのって何に使うんですか?
class Test:
__def __init__(self):
____self.x=1
____self.y=2
__def calc(self):
____print(self.x+self.y)
test = Tset()
test.z = 3
とかできますが、クラス作成時に言及されてない新規プロパティを使うのはどういう時ですか? >>88
使わない、というか基本的に使ってはいけない
Pythonのオブジェクトシステムの実装上たまたま可能なだけで、あえて可能にしてある訳ではない え、やったらあかんかったんか。こんなん出来て便利やわ、とずっと使ってたわ……
import socket
socket.socket.is_alive = lambda self: not select.select([self], [], [], 0)[0] そゆことしたいなら元のクラスを継承したMyClassを作るべきでは? >>88
Pythonは他と言語と違いゆとり用言語だからゆとりのための機能は活用したほうが良いだろ
派生で新規プロパティ追加するのめんどーくさい、で、その場でサクッと追加できるってゆとりには超便利だろ "There's Only One Way To Do It"(草) >>93
分かってる、それが正当なのは分かってる。将来socketやsslが改版される度に衝突してない確認しにゃきゃならんのも分かってる
けど、socket.socketに追加すればそれだけでssl.SSLSocketでも使えるし、ssl.wrap_socketやssl.create_default_contextみたいな便利関数もそのまま使えるし
派生クラスを作るとこのあたりが圧倒的に不便
もちろん引数にsocket.socket / ssl.SSLSocketをとる独立した関数を作ってもいいけど、あるオブジェクトの状態を問い合わせる機能はそのオブジェクトにメソッドとして持たせるほうが自然だし えーと、ごちゃごちゃ続けて済まない
要は、「正当でない」「元のクラスの改版で衝突するかも」以外に、なんか実装の仕組みとか言語の根本思想とかに関わる「やったら駄目な理由」があるんなら知りたいんだ 正当である理由も知りたいんだけど。いったい何の正当? 衝突するかもが一番の理由だろ
使い捨てスクリプトなら好きにすればいいんじゃね 近代的なPythonプログラミングにおける一番の問題は静的型検査の能力が損なわれることだろう
VSCodeで補完できないし型チェッカー使ったらエラーになる 型チェッカーに詳しくないけど、ダックタイプなのに拡張プロパティが付いただけでエラーになるの? そりゃ型に存在しないメンバにアクセスしようとしてんだから正真正銘エラーだよ 凄い長いループ文の最後に取得したい値があるとして
ループの最初にp=[]するんですが最後のと距離が離れすぎてて
忘れそうor間違えて消しそうですが
p = []なしで値を集める方法ってありますか?
p = []
for v in vals:
____この間凄い長い
___p.append(s) p = [ hage(v) for v in vals ]
def hage(v):
____# この間すごい長い処理
____return s
これはだめなの? p = list(map(hage, vals))
または
p = map(hage, vals) p = list(map(hage, vals))
または
p = map(hage, vals) p = list(f(vals))
def f(vals):
____for v in vals:
________この間凄い長い
_______yield s “There should be one-- and preferably only one --obvious way to do it.”じゃないのー? C言語を触ってて今日からPythonを見始めたけど、クラスだメソッドだインスタンスだ横文字だらけで説明されてさっぱりだ🤔 >>115
Cができるなら新たな言語を学ぶ必要はないぞ
特にオブジェクト指向は学習コストに比して実効果が割に合わないしな >>115
オブジェクト指向を覚えるのは
(Cでの構造化)プログラミングを覚えるのと
同じかそれ以上に時間かかるが
学んだだけの効果は出るはず
正しく学べればだけど >>117
正しく学べなかった奴の一例が>>116というわけだな >>115
きょうびオブシコ機能がない言語の方が少なくない?
勉強して損はないと思うけど >>115
Pythonをやる前にC++をやった方が良いな
Cできる奴はすごい奴が普通だからC++はたいして難儀しないで習得できるだろ
で、C++後、Pythonをやるとあっという間に覚えられるだろ Javaは論外
C++はやりたければやっても良いが
おすすめは C → C# → Python 皆さんありがとうございます
そもそもdefにすべきだったんですね
せいとんして頑張ってみます >>86
しばらくログインできず、今日書き込みみて解決しました
ありがとうございます 仕事で目にするPythonコードってただ一本調子でデータを加工するだけで
オブシコどころか階層化プログラミングすら怪しいのが多いわ
コピペも多いし、ぶっちゃけCOBOLレベル Ruby を1 とすると、
Python : 3
JavaScript : 5
C++ : 10 >>121
そう簡単だよ
そしてたいていの言語はC++よりは簡単
>>122
JavaはC#より開発現場で使われてるからな
言語仕様は後発のC#の方がモダンだが
C → C# → Python
その言語の中ではPythonが一番易しいから
Pythonから始めるのがオススメ >>129
それはその通り
でPythonはメジャーな言語の中では比較的コード自体に興味がなくて目的を達成できさえすればよいと考えるタイプの人が多い
まあ、だからこそ収入も高い傾向があるんだけどね >>125
これは同感
良くも悪くもそういう用途にフィットした言語
オブジェクト指向をpythonで勉強しましたってやつにはロクなのがいない >>125
一本調子でデータを加工するだけの処理だからpythonでササっと書いてるのでは?
単に目的に合った選択をしているだけの様に思えるが コボル人(こぼるど)ばかにすんなよw
そろそろコボルのXデー近づいてるから
CやPythonに書き換えるお仕事わいてきてるはずなんだからー matplotlib pyplot とか使うとオブジェクト指向に出来なくて(出来なくはないけど)
適当に描いてるうちにダラダラしてしまうことが多いのは事実
だが意識他界系の人なら綺麗なコードになる あと Blender の python も気付くとダラダラしてしまってる
気を付けないとな バッチ処理みたいなものをわざわざオブジェクト指向丸出しで書く奴のがあほだわ。
関数型にこだわる方がまだマシ。(どっちも度が過ぎるとあほだが) 関数型っていまいち理解できないんだけど、どーゆう考え方なんですか? ITの巨大掲示板群 ttp://x0000.net
(アルファ・ラボ|学術掲示板群) つーかその場でササッと書いて動かしてナンボのやっすい言語で
いちいちクラス設計するのは本末転倒だわ
Pythonにはオブジェクト指向は似合わない >>139
オブジェクト思考が解らん言い訳はやめろ
そんなに難しいものじゃないぞ >>136
いうても関数型プログラミングのサポートしょぼいからな
結局昔ながらの手続き型がもっともPythonに合ってる 関数型って何だろうと思ってHaskellいじってみたけど、頑張って再帰関数で処理する事を考えるプレイとまでしか思えなかった 大抵の再帰処理はlispの時代に出尽くした
あとはそれの応用、というか真似るだけ
正規表現だって人類に必要なやつの80%はperlの時代に出尽くした
あとは考える必要はない、探して真似るだけ >>143
変に複雑に考えんでも、参照透過性、副作用させないってことを意識したプログラムって
考えればええわ。(そもそも lisp, erlang, haskell, その他色々でも捉え方は違うし)
それによってデバッグしやすくなったりパイプライン処理やブロードキャスト処理が
しやすくなるってことくらい押さえとけばよし。 すごくアホな質問だとおもうのですが
def df=input_data()
def df1=analyze1(df)
def df2=analyze2(df1)
.
.
.
def df10=analyze10(df9)
def draw_graph(df10)
みたいにテキストファイルからdfにデータ読み込み
10個ぐらい解析処理
df10でグラフを描写
みたいなプログラムを書きました。 df0からdf10まで11個あるんだろ
次はdf100までちゃんと書くんだぞ
コピペすれば早く終わるからな すごくアホな質問だとおもうのですが
df=input_data()
df1=analyze1(df)
df2=analyze2(df1)
.
.
.
df10=analyze10(df9)
draw_graph(df10)
みたいにテキストファイルからdfにデータ読み込み
10個ぐらい解析処理
df10でグラフを描写
みたいなプログラムを書きました。
ここまではうまく行ったのですが、
データ決定→グラフ描写
を1回だけでなく2回行い並べて表示させたくなりました。 この場合先程の
analyze1〜analyze10
までを一つのクラスProcessDataにして2つのインスタンスABを生成して実行すればいいかと考えたのですが、
process_dataA=ProcessData
dfA=process_dataA.input_data()
.
.
.
df10A=process_dataA.analyze10(df9A)
process_dataA.draw_graph(df10A)
process_dataB=ProcessData
dfB=process_dataB.input_data()
.
.
.
df10B=process_dataB.analyze10(df9B)
process_dataA.draw_graph(df10B)
とインスタンスAとインスタンスBに対して全く同じ処理を行うルーチンを2度書くのがあまりに冗長な気がするのですが、なにか良い方法ないでしょうか? 関数として処理を切り出せばいいんじゃないんですかね。。 >>150
途中のdfが不要なら上書きしていけばいい
Pandas使うときはよくやる
df = input_data()
df = analyze1(df)
df = analyze2(df)
…
それを関数に抽出
def analyze_data(df):
____df = analyze1(df)
____df = analyze2(df)
…
____return df
df = analyze_data(input_data())
draw_graph(df)
関数のリストを作ってそれを適用する方法もいろいろとあるけど
今の段階なら上の方法からやるのがいいかと >>152
>途中のdfが不要なら上書きしていけばいい
自分で書いといてなんだが
df = df.apply(analyze1)とかでapplyできる形でなく
全く異なる別のDataFrameを生成してるんであれば変数名は変えたほうがいいかも Categories > Tech > Languages (Python)
https://duckduckgo.com/bang?c=Tech&sc=Languages+(Python)
ドキュメントの探し方
https://news.mynavi.jp/itsearch/article/devsoft/4859
>任意の機能を持った対話システムを自分で開発する場合にはどうしたらよいのでしょうか。
当然ながら、必要なモジュールは自分で探す必要があります。しかし、プログラミングを始めて間もない方の多くは、
どうやって調べたらいいかわからないのではないでしょうか?
そこで今回は、「カレンダーを表示する対話システム」の開発を想定し、
カレンダー機能の実装方法を調べていくプロセスを紹介したいと思います。 >>152
なるほど
クラスにするとインスタンス生成して、ポインタ指定しなければいけないから、冗長になるけど、
あえてクラスにしないで関数にするとシンプルになりますね。
オブジェクト指向でクラスにしなければいけないと思ってたけどあまり黄にしなくていいのかなぁ。 df自体がDataflameオブジェクトのインスタンスなんだけどそんなこともわかってないのかな >>146
「df10」みたいに
変数名や関数名、クラス名などに
数字がつく時点で間違ってる
Pythonのまともな本の
サンプルコードでは
まずそうなってないはず >>156
Ruby では普通は、モジュール内にはクラスを定義するけど、
単にモジュール関数も定義できる。
例えば、my_utility.rb 内に、モジュールを定義する
module MyUtility
def my_func( 引数 )
end
module_function :my_func # 外部へ公開する
end
別のファイルで、上のモジュールを読み込んで、関数を呼び出す
require_relative "my_utility.rb"
MyUtility.my_func( 引数 ) >>156
あえて一言でポイントだけ言うと
クラスを作るかどうかは
状態を管理したいかどうか Pythonって文字列部分にダブルクオートを使わずに
シングルクオートを使って書かれてるコードの方が多い気がするんですけど何か意味あるんですか?
シングルクオートのキーボードの位置って結構押しづらい位置にあるからあんまり使いたくないんですけど >>159
すいません。
実際の名前を書くと長くなりすぎるかと思って適当な名前をつけてしまいました。
ちなみに実験条件1、実験条件2データを
experimental_condition1
experimental_condition2
というのもあまり良くないのでしょうか? >>161
状態を管理するってどういう意味でしょうか?
本とかでゲームを題材に敵を量産するためにクラスを作るのはわかりやすいのですが、
数値計算とかだと、どこでクラスを使うべきかよくわからなくなります >>162
USキーボードはダブルよりシングルの方が押しやすいから >>158
なるほど
関数型プログラミングとは聞いたことがありましたが、こちらの方が数値計算とかだとしっくりくるような気がしますね >>164
単純な数値計算は関数だけでもいい
むしろその方がスッキリする
三角関数とかに状態とかないから
ゲームの場合は状態遷移の塊で
状態を保存しておきたいから
クラスを作りインスタンスを生成する >>165
ありがとうございます
そういう理由なんですね >>163
dfA とか dfB とか dfZ とか使ってる人もいる
どっちにしろ素人丸出しコードになるのでお薦めはしない ぺっぷってやつにどっちが推奨とか書いてないの(´・ω・`) """hogehoge"""
↓よりも見易いのは
↓こっちやろ
'''hogehoge''' blackがダブルクォーテーション推してるからダブルクォーテーション使え >>163
(とくに二桁以上に増える可能性があるものは)
後で複雑化して大変になるから
たとえば配列を使ったりして
番号を振らないで済むようにする方が推奨できる >>163
なげーよ、短く且つなんのデータフレームかわかる命名しな。センスが問われる。 >>162
C#ではダブコ使うからダブコに合わせる >>177
pythonのほぼ公式formatter >>163
テストが2つしかないと明確に決まってるなら〜one,〜twoでいいと思うけど
それがいくつになるのか解らない、もしくは多いのならリストを使って
〜[x]としたほうがスマートというか扱いやすい
変数名、関数名、クラス名に数字を使わないというのは
プログラムの作法(?)として言語を問わず普通というか当たり前 あと、なんか知らんけどこのスレ、プログラミング自体が初めてな
感じの奴多い気がするんだけど、学生なのかね?
なんかpython選択しちゃってどうしたらいいか解らない的な
質問が多い気がする >>182
PythonのPHP化だよ
すそ野が広がれば初心者も増える 超初心者ってのはプログラミング自体初めてっていうヤツのことなんじゃないの
初心者に輪を掛けて超がついてんだよ
それ以外に何かいるの >>183
ユーザー層的にはPHP化というよりExcel化だな わいRuby厨、いまからプログラミング始める学生に勧めるならもうRubyよりPythonかなって思ってたけど、お前らは最初の言語は何がいいと思ってんの? 最初ならアセンブリ。冗談じゃなく。
ほんのちょっと齧っておくだけでいい。 >>182
本屋いってみ?
スクラッチとパイソンだらけだ
あの状況はちょっとやばい気がするぞ 供給過多で単価が下がるのはプロパー的にはありがたい
Pythonはコーディングスタイルを統制しやすいから低スキル層を束にして使うには向いてる >>167
なるほどわかりやすいです
自分はゲームとか作ることはないので、
クラスにする必要性はなかったのか・・・
C#の初心者本とか見てるとクラスにしないといけないような脅迫観念があった >>181
配列は自分も考えたのですが、
今回は2つまでなの確定なんですよね
before, afterの頭文字とって
DF_B, DF_A
とかしたら訳わかんなくなるんだろうな
名前決めるのって難しい plt.plotで2つのグラフを順番に表示させると、
1名目のグラフのウインドウを閉じないと、2枚目のグラフのウインドウが表示されないのですが、
同時に表示させる方法ってないでしょうか? >>195
>低スキル層
で、超ゆとり教育を激受けて脳が未発達で実質知的障碍者に近いレベルの奴が
たむろしているのが俺らのこのスレだからな。 >>188
Ruby
だと本当は思ってるが
今はPythonなんだろうな Pythonはプロの開発に使われることはまずない
開発以外に主眼が置かれている人工知能などは別として
プログラマの主戦場である業務系やWEB系ではまず使われない
自分自身でアイデアも実装も出すとこならPythonも可能性があるが
他者の依頼によって開発する場合にPythonが採用されることはない >>203
プwww
典型的な日本のPGですね、君www GoogleやNetflixやDropboxはプロでもWEB系でもはなかった…? >>208
WEB系とはWEB技術を使って業務システムを作ること
オープン系の対義語
またそれらの企業は「他者の依頼によって開発」ではなくて自社開発
>>206
日本だったらこれが常識だよね
COBOL、VB、Javaが職業プログラマの基本
さらに言うならOracle、SQLServer、DB2も習得していると望ましい
Pythonって要するに日本でいうBASICと同じ立ち位置
例えば最も普及しているBASICであるExcelVBAがいくら便利でもそれで基幹システムつくらないよねって話
GoogleだってPythonはタスク管理程度にしか使ってない
大事なところは別言語(時代によって採用言語は変わるがPythonではない)
あと、よく言われるけどPepperもPythonじゃないからな
あれはユーザー側が簡易に制御できる言語としてPythonを採用してるだけだ >例えば最も普及しているBASICであるExcelVBAがいくら便利でもそれで基幹システムつくらないよねって話
これでド素人ということが分かった 基幹システムといえるかどうか微妙だが
情報システム部門で日報作るのにExcelマクロ必須だったな ExcelVBAで基幹システムって
作らないのではなく作れないし >>212
お前も210から見ればただのド素人
実は僕もなんですけど >>209
>Oracle、SQLServer、DB2も習得していると望ましい
ちょっと古いのでは?
今は postgreSQL >>212
作れない?
高くつくから作らないだけだろ
コストと日程くれるなら作るよ ガチればストアドプロシージャだけでも基幹システムは作れるゾ 12345678みたいな入力を\x78\x56\x34\x12に変換するライブラリってありませんか?
もしくは今そんな感じの自作モジュールを作ろうとしてて、
/usr/bin/mymodule/
以下にchange.py、その中に入れる関数の方のchange(s)まではできたんですが
from mymodule import change
change.change(s)
と毎回関数changeを呼び出す為に2回書かなきゃいけないのが気に入らないので
この関数changeを一発でimportする方法を教えてください
ワンライナーでも多用する予定なので、できる限りタイピングする文字数を小さくしたいんです >>211
全然微妙じゃなくて吹いたわw
Excel VBAで基幹システムって言ってるやつは
UI部分にExcelとVBAを使ってるって話だろ >>217
#include <time.h>
t = time();
などと2行書くものだと信じていたので、質問に驚きました。 >>219
あ、すみません後半のchange.change(s)みたいにファイル名と関数名を
一々書かなきゃいけない方が嫌なだけで、一行目のimportは当然OKです
python -c "import change(もしくはfrom 〇〇 import change);change(s)"
みたいな感じの物を実現したいです。 いまやPythonは基幹システムに使われるメジャー言語になっているから
職業プログラマが必死にPythonをやっているからな >>217
$ touch /usr/bin/mymodule/__init__.py
from mymodule.change import change
https://docs.python.org/3/tutorial/modules.html#packages >>222
ありがとうございます!
importのやり方普通のやつとfrom ~ import ~しか分かってませんでした、反省します 自分の周りでは少なくとも、治自体関係、医療関係(レセプト、電子カルテ等)、
運送・運輸関係の基幹システムをPythonで構築しているという話は聞いた事
がない。コールセンター(CTI、IVR等)関係のシステムをPythonで構築している
という話も聞いた事がない。
基幹システムをPythonで構築ではなく、基幹システムの一部の機能にPythonが
使われている場合があるという事なのか。
それとも情報系システムと勘違いしているのか。 フレッシュなニンニクジュースを飲めばコロナ菌は死滅する! COBOL、VB、Javaが、多重請負構造・奴隷土方プログラマの基本w
銀行側が払う料金
時給5千円 * 180時間 = 1人月90万円
その内、本人は20〜30万円ぐらいもらう。
その差額、60万円分で、数社の会社が成立できる仕組み
その60万円を多重請負構造で分ける
例えば、元請けのIBM(5大ITer)が30万円とって、
1次受けの上場企業が20万円とって、
2次受けの中小企業が10万円とって、みたいな土建業と同じの多重請負構造
就職面接へ行くと、1〜3次受けの会社員が皆来てるw
1次受けが雇うというと、2次も雇う、3次も雇うとなるw
奴隷売買業w
女衒みたいなものw
GitHub・Ruby みたいな自社サービス系とは全く違う!
学校で教えるのは、就職率が高い、Ruby ばっかりw
自社サービス系の方が、会社の倒産リスクは高いけど、
中間会社に抜かれないから、給料が高い それに銀行系は、システム更新時期が過ぎたから、仕事が無くなったw プロは複数言語使えるのが当たり前なんだからPythonが基幹システムに使われようが使われなかろうがどうでもいいだろ。
言語の特性上向いてない目的を挙げて特定の言語をdisすることになんの意味があるのかわからん。
他言語のコード書いてるときでも、データ変換やある程度決まりきったコードなんかはPythonで生成したりしてるが便利だよ。他言語で書いたアルゴリズムが間違ってないかの検証なんかにも使えるし。 生成や検証ってpython以外のP言語でも出来るんじゃねえの Haxe は、JavaScript, C++, C#, Java, JVM, Python, Lua, PHP, Flash に変換できる >>217
>>> binascii.a2b_hex('12345678')
b'\x124Vx'
>>> list(reversed(binascii.a2b_hex('12345678')))
[120, 86, 52, 18]
>>> bytes(reversed(binascii.a2b_hex('12345678')))
b'xV4\x12' >>217
structパッケージかな
from struct import pack
pack('<I', int('12345678', 16))
長いというならラムダ式でも使って
change = lambda s: pack('<I', int(s, 16))
と定義すれば
change('12345678')
で使える >>234
>>235
ありがとうございます、ただやりたいのは入力数値をそのまま\x78\x56……
みたいな方式に変えたいことで16進数に変換されるとちょっと不都合が
セキュリティ本のシェルコード挿入でそういう入力多かったので作ろうと思ったんですが
もしかして普通は上みたいな入力使う機会ないんですかね? >>236
\x78
は16進数で78のことを表している
16進数であることを明確にするにはH'78と記述する
プログラムでは0x78と書く
\x78\x56...みたいな16進バイト列を作りたいんだけど、16進数にされるとちょっと困る、と言われても、こっちも困る 要するにchange.change(s)って毎回書くのだるいからchange(s)って書くにはどうすればいいかってこと? https://dotup.org/uploda/dotup.org2096094.png.html
画像はbashですがこんな感じでAAAA\x78\x56……という文字列を出力したいんです。
って言おうとしてたんですがすみません、これの出力が
AAAAAAAAAA\x78\x56\x34\x12
になるとずっと思っていたんですが、嫌な予感がしたので今確かめたら
AAAAAAAAAAxV4
になってました
つまり>>234の方と>>235の方のやり方が求めていた者です、ありがとうございます。
初心者の勘違いでお騒がせをしてスレを汚してしまい申し訳ありませんでした……orz >>240
プログラムに組み込んでパイプで渡したいだけなら何もする必要はない
python -c "import sys; sys.stdout.write('AA\x12\x34')" | hexdump -C
結果
00000000 41 41 12 34 |AA.4|
コマンドライン引数でこの文字列を受け取った上で別のプログラムに渡す場合は、自分で作らないとない
python -c "import sys; sys.stdout.write(sys.argv[1])" "AA\x12\x34" | hexdump -C
結果
00000000 41 41 5c 78 31 32 5c 78 33 34 |AA\x12\x34|
\x12がH'12の1バイトではなく、H'5c783132の4バイトとして評価される def file_open():
data_path = fd.askopenfilename(
title="ファイルを選んでください",
filetypes=[("TEXT", "csv"), ("TEXT", "py"), ("HTML", "html")]
)
def main():
a=input()
if a!='1':
file_open()
を実行すると、VS CODEのウインドウの下に非アクティブでファイル選択ウインドウが立ち上がります。
ファイル選択ウインドウを再前側でアクティブウインドウとして立ち上げたいのですがどうすればいいのでしょう? if文ぬいて
def file_open():
data_path = fd.askopenfilename(
title="ファイルを選んでください",
filetypes=[("TEXT", "csv"), ("TEXT", "py"), ("HTML", "html")]
)
def main():
file_open()
とするとファイル選択ウインドウが最前面にきてアクティブになるんですよね
なんでだろう ああ、なんとなくわかってきました
input()
を使うと、VS CODEが最前面でアクティブのままロックされて、
そのウインドウの裏でファイル選択ウインドウが開くみたい
input()を使ってこの現象をさける方法ってありませんか? 連投すいません
data_path = fd.askopenfilename(
title="ファイルを選んでください",
filetypes=[("TEXT", "csv"), ("TEXT", "py"), ("HTML", "html")]
)
でファイルを開くときに、選択ウインドウを常にアクティブにする設定があれば教えて下さい
というのが、正しい質問でした
ご存知の方いらっしゃいましたら教えて下さい >>245
fd ってのが from tkinter import filedialog as fd なら
tkinter で topmost を指定してあげれば良いんじゃないかな?
https://teratail.com/questions/145112 >>246
解決しました!!!
ありがとうございます
もうわからないから、
print('この画面を最小化してね’)
とでもしようかと思ってたw 初歩的な質問ですみません。Colaboratory を使ってスクレイピング行っておりURLのみを表示させたいので
get使ったのですがAttributeErrorになってしまいます。
getを使わずa_tagsだけ入力するとエラーにならずに表示されます。
getが使えないのは何が原因なのでしょうか?
import requests
from bs4 import BeautifulSoup
page_url ="https://news.yahoo.co.jp/topics/top-picks"
r = requests.get(page_url)
soup = BeautifulSoup(r.text, features="html.parser")
a_tags = soup.find_all("a", class_="newsFeed_item_link")
a_tags.get("href") >>248
a_tagsはlistだから
listの各要素に対してget(‘href’)する必要がある >>248
Ruby, selenium-webdriver, nokogiri で作ったが、href を取得しようとすると、エラーになる。
sleep 15 して待っても、エラーのまま
要素は存在するけど、JavaScript で動的に、href を作っているのかも。
他から取得するか、クリックするなど、何かアクションを起こせば、作られるのかも
require "selenium-webdriver"
require "nokogiri"
options = Selenium::WebDriver::Chrome::Options.new
driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to "http://news.yahoo.co.jp/topics/top-picks"
doc = Nokogiri::HTML( driver.page_source )
css_selector = "a.newsFeed_item_link"
elements = driver.find_elements( :css, css_selector )
results = elements.map { |elem| elem.attr( "href" ) }
puts results
driver.quit >>250
は、nokogiri を使わず(doc という変数を使っていなかった)、
selenium-webdriver から取得していたので、
それを、20秒スリープして、nokogiriから取得するように変えたら、25個のhref を取得できた!
require "selenium-webdriver"
require "nokogiri"
options = Selenium::WebDriver::Chrome::Options.new
driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to "http://news.yahoo.co.jp/topics/top-picks"
sleep 20
doc = Nokogiri::HTML( driver.page_source )
css_selector = "a.newsFeed_item_link"
elements = doc.css( css_selector )
results = elements.map { |elem| elem.attr( "href" ) }
puts results.length, results
出力、以下が25個
https://news.yahoo.co.jp/pickup/6355533
https://news.yahoo.co.jp/pickup/6355534 すいません、ちょっと教えてもらいたいのですが
for x in ...
とかで文字を使っちゃうとまた次のforのときに
またx使うか迷うんですけどどうしてますか?
iみたいに毎回同じ文字使ってますか???
特に短いforがいくつもあるときに悩みます >>252
入れ子になってる等やむをえない事情がないのなら、
新たな文字など使わずに
むしろ
どんどんxなりiなりを再利用したまへ。
「どーでもいい?forループ回すときはいつもiな!」みたいな
俺ルールの徹底は
後日メリットばっかりだぞ。 >>252
ループ変数としてしか使わない前提なら可
ループ変数を他の用途に使い回すのは不可 >>254
そのルールでチェックできるlinterってない?
ループの外では使うのは気持ち悪いからやらないけど
セーフガードは持っておきたい >>259
m、lの順序が敢えて逆なのに意味はあるんけ? i, ii, iii, iiii
とかやっちゃうな 何だこのスレ?bad know how の集合知や〜 特定種類のファイルとかはtext, image, folderとか
それ以外で二重以上だと分かっている時はx,y,z,w
4重ループより複雑な時は実装がおかしい pythonでも高階関数使いまくったらいい感じにスッキリできるんかな
内包表記でええやんってなりそうだな >>265
> 特定種類のファイルとかはtext, image, folder
これもアリでんな
>>262
目が滑るからやめとこうぜ
>>266
ハッシュ・ド・カレーだっけ?www pythonやるために格安ノートPC買いたいんやけど必要スペックとかある? >>269
一番の問題はHDD容量だとおも。
俺のネットブックはHDDが64GBしかないから
あっぷあっぷしている。
無論CPUは速いほうがいいし、メモリも多いほうがいいのだが。
>>268
んじゃあ
老眼にキツイし、
そも、人間の指は同じキーを何度も打つのは苦手にできてるんだからやめとこうぜ >>265
x,y使うのは座標と分かっているときだけだなぁ。そのときは外側からt,z,y,x,(wかc) >>262
それやるぐらいならi1, i2, i3, …にするわ >>249
ありがとうございます。使い方が間違っていたんですね。再度調べてみます。
>>250
>>251
ありがとうございます。seleniumでも試す際に参考にさせていただきますね。 >>252です
ありがとうございます
自分なりにルールを決めたものを使っていくことにします。
forに変数いらないのあるなんて知らなかったです
助かります >>269
> pythonやるために格安ノートPC買いたいんやけど必要スペックとかある?
格安ノートはわりとすぐに使えなくなる。
無駄遣いになる危険性があるぞ?
PCには金を使え。
もしプログラマやデータサイエンティストになりたいなら。 別にクライアントサイドでプログラミングしなくてもいいんでないかい >>276
いまはやり?のビッグデータ解析とか
自然言語だの画像だのをみて、判別してくれるAIにちゃーれんじするなら、
自分のノートのスペックなんかより
ぶっちゃけ、契約するスパコンのスペックががが >>258
pythonにもperlの$_変数を導入しようって話か?
やっぱり変数宣言なんて不必要で、みんながみんな決められた記号を使えば、誰にも分かるコードが出来上がるじゃないか 無論prologにも無名変数として_が用意されてる
ttp://karel.tsuda.ac.jp/lec/prolog/intro2/
ならもう変数命名自体を排除した方がいいのでは ここってプログラム以前の問題もありですか?
私はターミナルを使うのにあまり慣れていません。
python2.7.3を使わなければならない用事ができました。
macでpyqt4を使おうと思いましたがインストールがうまくいっていないようです。
https://qiita.com/aical/items/2d066801a7464a676994の通りにしました。
ターミナル↓
hogenoMacBook-puro:~ hoge$ pyuic4
Traceback (most recent call last):
File "/Users/hoge/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages/PyQt4/uic/pyuic.py", line 26, in <module>
from PyQt4 import QtCore
ImportError: No module named PyQt4
pyuic4を使うとインストールができたかどうか確かめられるとのことで使いましたが、
どうやらpythonが認識していないようです。
pyqt4がありそうに見えるのにno moduleと言われるので困っています。
これが現在の様子です
hogenoMacBook-puro:~ hoge$ python
Python 2.7.13 |Anaconda 4.0.0 (x86_64)| (default, Dec 20 2016, 23:05:08)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org >>282
PyQt4がインストールされていない
conda install pyqt=4
それでも出るようなら環境変数PYTHONPATHを設定してパスを通す
export PYTHONPATH=$HOME/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages >>284
ありがとうございます。解決しました。
conda install pyqt=4 はつい先ほどマニュアルを読んで実行したはずが
なぜか追加要素がたくさんあって驚きました。
それでも解決しませんでしたが、次にパスを通すことでうまくいきました。 一昨日こちらでスクレイピングの質問し回答を参考にさせていただいたものです。
エラーが起きなければ25件titleとURLが取得できると思うのですが、5件しか表示させず
IndexError: list index out of rangeとなってしまいます。
指定しているインデックスの問題だと思い番号をかえたりしてみましたが改善されません。何が原因なんでしょうか?
import requests
from bs4 import BeautifulSoup
page_url ="https://news.yahoo.co.jp/topics/top-picks"
r = requests.get(page_url)
soup = BeautifulSoup(r.text, features="html.parser")
a_tags = soup.find_all("li", class_="newsFeed_item")
data = []
for h1_tag in a_tags:
tmp_article_a_tag = h1_tag.find_all("a")[0]
title = tmp_article_a_tag.text
url = tmp_article_a_tag.get("href")
print("title:{} url:{}".format(title, url))
data.append([title, url]) >>287
Anacondaはシステムのライブラリが足りない場合でも動くので、そういう環境の人は使えると思うよ
例えばCentOS系でDockerが使えない場合、ライブラリが古い場合でも必要なライブラリはAnacondaがインストールするので新しいpythonが使える
他には機械学習関係でcudaやcudnn等のNvidia環境を構築するのは圧倒的に楽
バージョンの干渉で迷う事はほぼない
.bashrcや.zshrcにデフォルトでAnacondaを設定するとデフォルトのPythonと環境が違うのでトラブルの元になるけど、毎回sourceコマンドを叩くのも面倒なので利便性とのトレードオフかな venvみたいなめんどくさいことするならanaconda入れる方がよっぽど楽だけどね。
PATH設定くらいだからそこまで問題がわからなくなることが多いとも思わん。 condaに入ってないライブラリをpipで持ってきて地獄を見たことがあるから、最近はpoetry使ってる
今の主流はpipenvなのかな? conda使ってるのにpipで入れてる上になんか入らないやつ手動でsite-packageフォルダにコピーしてるけどダメなの? いい加減、ライブラリ・パッケージ管理ツールを統一して欲しいもんだが
次々と新しいものが出てくるばかりでどうにもならんな 追加で質問です
$conda install -c dan_blanchard pyenchant でインストールしようとしていますが、
10分経っても終わりません。なにかいい方法はないでしょうか。
Collecting package metadata (repodata.json): \ ←この棒がずっと回っている anacondaを使った理由はたまたまネットで見つけたページにそう書いてあったからです。
私はとあるソフトを使いたいだけでプログラミングについてはよくわかりません。 >>286
ブラウザの開発ツールでページ構造よく見てみ
5個ごとに入ってる広告がliの直下はaタグではなくdivになってるから ちょ、python最新版にしたらkerasが対応ついてきてなくて積んだww keras, ras, whatever will be will be. >>286
Ruby で作ったけど、最初の部分は省くけど、( >>251 を参照)
li.newsFeed_item の子孫のa は、29件で、li.newsFeed_item の直下のa は、25件。
Python のfind_all("a")[0] は、子孫も含めるのじゃないか?
出力は、こういう感じ
title:富士フ、アビガン治験開始へ3/30(月) 22:52 url:https://news.yahoo.co.jp/pickup/6355698
title:大連市 北九州にマスク20万枚3/30(月) 22:40 url:https://news.yahoo.co.jp/pickup/6355699
doc = Nokogiri::HTML( driver.page_source )
elements = doc.css( "li.newsFeed_item" )
# li.newsFeed_item の子孫のa は、29件
results = elements.map { |elem| elem.at_css( "a" ) }
puts results.length
results.each { |elem| puts "title:#{ elem.text } url:#{ elem.attr( "href" ) }" }
puts "------------------------------------"
# li.newsFeed_item の直下のa は、25件
ary = elements.each.each_with_object( [ ] ) do |elem, ary|
elem.children.each do |child|
if child.node_name == "a"
ary.push child
break
end
end
end
puts ary.length
ary.each { |elem| puts "title:#{ elem.text } url:#{ elem.attr( "href" ) }" } 昨日から学習始めました。
pandasで質問なんですが、このようなDataFrameがあるとして、
日付 スコア
2020-03-01 20
2020-03-02 15
2020-03-03 25
︙
↑これにカラムを追加して累積のスコアを取得したいです。
日付 スコア 累積
2020-03-01 20 20
2020-03-02 15 35
2020-03-03 25 60
︙
カラムの追加は出来ています。
データは長いものなんですが、forを使うんですかね?
それともちょうどいいメソッドみたいなものがあるんでしょうか?
くだ質ですけどよろしくお願いします。 この辺組み合わせろ
cumsum
Series
concat >>301
>>302
ヒントありがとうございます! 何度もすいません 環境書いてなかったので
mac mojave10.14.6 python2.7.3 anaconda で pyenchantを入れようとして
conda install -c dan_blanchard pyenchant を使ったものの
Collecting package metadata (repodata.json): / が数時間ほど出続けて一向に終わりません。
conda install pyenchantも試しましたが同じような結果でした。
IDEは多分xcordだと思います。 >>302
出来ました!ありがとうございます!
嬉しい! やってみましたが特に変わらないです。10分ほど待ちましたがまだ同じ文章が出て回ってます ありがとうございます。再度構造を確認したら間違っていることに気がつきました。
>>299
参考になりました。ありがとうございます。findの使い方、ページの構造を理解しきれてなかったので基本から見直してみます。 >>308
アンカーを省略するんじゃない
+
権限は足りてるか?
+
最近のMacOSなら、ルートレスが悪さをしてるかもしれないので
一時的にでも切ってやってみそ >>308
ゴメン linux用のパッケージ入れようとしてたのが原因なら、無反応じゃなくてエラーになってたはずだね
condaのバグでそういう症状が報告されてるから、そっちかな
(Anaconda 4.0.0なら関係ないかもだけど、condaをアップデートしてたらありえそう)
https://github.com/conda/conda/issues/9221
mmoisseさんのコメントに従ってsubdir_data.pyを編集しないとダメなんだけど、無理そうならpython3で試すとか
この修正はcondaに取り込まれないので( https://github.com/conda/conda/pull/9600 )、もしこれが原因なら、待ってても(python2では)直らないと思う 【速報】東京都が #新型コロナウイルス 感染症死亡者数を過少評価か、
「例年より少ない」とされていたインフルエンザ関連死が急増=国立感染症研究所
https://www.niid.go.jp/niid/ja/flu-m/2112-idsc/jinsoku/1852-flu-jinsoku-7.html …
コロナで死んだのインフルに振り替えてるんじゃまいか
こういうニュースが出てくる時点で隠蔽はもう無理
おそらくパンデミックは避けられないと思うね >>311
・アンカー省略して申し訳ないです
・私はこのmacの管理者です。それ以上のことはわかりません
・切りましたが変化ないです
>>312
・python2を使う必要があります
・anaconda4.0.0 でconda 4.8.3 py27_0 のようです(conda listで出しました)
・そのプログラムを==から<にすればいいのはわかりましたが方法がわかりません
そもそも場所もわかりません ┐(´д`)┌ 現状をまだパンデミックだと認めてないのはただの政治判断ッショ >>315は>>313宛な
自分でアンカー省略するなといっといてコレとはなさけなや (´・ω・`)トボーン >>314
312氏の投稿のほうが当たりっぽく
かつ
Python2系縛りがあるとなると、
308のナウのパウァーでは
どーにもならないっぽいな・・・
condaがばぐっててむりでした。どーしましょ ってさっさと上に相談してみる に1票。 >>300
df = df.assign(累積=np.cumsum(df['スコア']))
で1行で出来ますよ sys.stdout.buffer.write(b"\x41"*10)
ってやると「AAAAAAAAAA10」って表示されるんですけどこの最後の10ってなんですか?
これの取り方を知りたいです >>319
byte型とstr型まぜるな危険ちゅーか混ぜれないぜイラァ!が、Python3あるあるらしいぜ。
hoge=b'\x41'
hoge=hoge.decode()
sys.stdout.buffer.write(hoge*10) >>314
>conda 4.8.3
4.7.11以降だから、やっぱり該当するね
>・そのプログラムを==から<にすればいいのはわかりました
お、それが分かるんならもうちょっと
その続きの部分でmmoisseさんがashleymaeconardに教えてる↓のコマンドで見つかるはず
dir=$(dirname `which conda`); find ${dir}/../lib -name "subdir_data*"
「which conda」でcondaがインストールされてる場所がわかるので、そのディレクトリ下からsubdir_dataっていうファイルを探すって感じ
おそらく ../lib/python2.7/site-packages/conda/core/subdir_data.py みたいな場所にあるんじゃないかな?
でも、python2も使おうとしてるpyenchantも古い(最近のはpython2対応してない)ので、今後も問題が起きた時に対応策を調べるのが結構大変だと思うよ(最新の環境の方が情報が見つけやすい) >>318
df['累積'] = np.cumsum(df['スコア']) >>320
そいつもエラーだ
>>319
最期の10 は単に戻り値が画面に出て来るだけ
>>> _ = sys.stdout.buffer.write(b"\x41"*10)
これで消える >>320
sys.stdout.buffer.write()だとstr型は表示できません
ですが一応答えてくださってありがとうございます…
>>323
ありがとうございます!
print()のbyteをデコードして出力する感じのものだと思ってたんですが動作違うんですね…勉強になりました >>321
dir=$(dirname `which conda`); find ${dir}/../lib -name "subdir_data*"
を使ったら
usage: dirname path
find: /../lib: No such file or directory
と言われてしまいました
>>317
チームメイトは日本語ほぼ通じないし私の英語も足りないので難しいことを喋るのはきついです
ちなみに会社ではないし賃金もないです >>325
sys.stdoutするところまで確認しないで書き込んですまんそ。
言い訳すると、朝だからバタバタしていた。
>>323横レスだけどなるほどなっとく >>326
which condaの結果が取れてないのかな?
ターミナルで使うシェルのコマンドの使い方とか意味がわかってないなら、「mac ターミナル 入門」とかで検索して適当な入門記事とか読んでみると、何をしているか(わからない時の調べ方とかも)わかるようになるよ
やってることは
which condaでcondaがインストールされてる場所を調べる
dirnameコマンドでその場所のディレクトリを取得する
変数dirに結果を格納
その中(下の階層)にある名前がsubdir_data始まりのファイルをfindコマンドで探す
っていう流れなので、個別に分けて実行してみるとわかりやすいと思う
あとは、別にターミナル使わなくても、ファイル検索の機能やツールでsubdir_data.pyを探してもいいと思うよ
もし複数見つかったとしても、condaのファイルかどうかはファイルパスからわかるんじゃないかな? >>328
あああ微妙にわかった気がしてきました
なるほどだから一行に$が何回も出てきたのかと納得しました
確かにwhich condaを試すと回答が出てこず何事もなかったかのように
hogenoMacBook-puro:~ hoge$ が出てくる状況になっていました。
ウインドウを閉じてまた開くと普通の回答が戻ってきて不気味です
今度はfind: /Users/hoge/.pyenv/shims/../lib: No such file or directory
になって多少進歩しましたが見つからないですね
mdfind subdir_data*は何も出ません。
find / -name subdir_data*は末尾にPermission deniedのついた大量のデータが出てきましたが
condaという文字が見当たらないです
と書き込もうとしてfindの回答したデータに気づきました
/Users/hoge/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages/conda/core/subdir_data.py
これだ
なぜか/Users/hoge/.pyenv/versions/anaconda-4.0.0/系統の回答には
頭のfind: も末尾の: Permission deniedもついていなくて目が滑っていたようです
早速finderにパスを打ち込んで直接書き換えることで変更し、バグが直ったようです
現在のバージョンはpython3.4を要求してきたので古いのにします
ttps://pypi.org/project/pyenchant/1.2.0/#history
2.0.0を入れればいい感じですか? >>329
本家もメンテナンスしないような古いバージョンのAnacondaと戦うのは辞めた方がいい
Anacondaはconda installを使った場合はパッケージの干渉を細かくチェックしてるけども、pipを使ってはいけない訳でもない
pip install --upgrade pip
pip install pyenchant
Mojaveにpyenvでanaconda-4.0.0をインストールして上記コマンドを試してみたが普通インストールできて適当なサンプルも動いた >>329
あーそっかnatxはpy34なんだねゴメン
https://anaconda.org/search?q=platform%3Aosx-64+pyenchant
xrysoflis の方がpy27だから、そっちを使えば良いんじゃないかな?Filesタブで確認できるよ
>>330 も言ってるし、朝も書いたけど古すぎて後々かえって困ると思うのでオススメできないけど、python2使わなくちゃいけないならpyenchantもv2以下になるね
一応conda skeleton使ってPyPIパッケージもインストールできるよ
https://qiita.com/itsumonotakumi/items/f0273c2a3a04ef808dbd >>329
>ウインドウを閉じてまた開くと、普通の回答が戻ってきて不気味です
Mac では端末の設定ファイルに、~/.bashrc を使うか知らないけど、
たぶん端末の設定ファイルに、設定を書き込んだから、
端末を再起動(閉じて開き直す)すると、設定ファイルを再読み込みするから、状態が変わる!
だから設定ファイルに書き込んだら、常に端末を再起動すればよい
例えば、Windows 10, WSL, Ubuntu 18.04 で、Ruby のバージョンマネージャー・rbenv を使うと、
~/.bashrc に、以下の2行を追加するように言われる。
内容は、環境変数PATH の先頭に、rbenv のパスを追加して、rbenv init を実行する
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
2行を追加してから、source ~/.bashrc と入力して、~/.bashrc を再読み込みするか、
端末を再起動すると、更新された、~/.bashrc を読み込むので、
echo $PATH
と入力すると、確かに先頭に、~/.rbenv/bin が追加されているので、
which rbenv
と入力すると、~/.rbenv/bin/rbenv が表示される。
これで、rbenv コマンドをグローバルで使える
以下、rbenv install 2.6.5, rehash, global で、好きなバージョンを使えるようになる
rbenv which ruby
と入力すると、確かに、versions の下に、インストールされている!
~/.rbenv/versions/2.6.5/bin/ruby 最近はMacのデフォルトシェルはzshになってるからそれで嵌るやつは嵌る obj.sort(str) みたいなのがあって、引数がリストなど受け付けないとき
obj.sort(str_1).sort(str_2)みたいに書いてるんですがバカっぽいです
なにかいい書き方はありませんか? バカっぽい以前に何をしたいのかよくわからん
安定ソート前提なの? >>336
objとstrがどういうものかによる
built-inのsort()/sorted()を使ってDictionaryを複数キーでソートしたい場合は
sorted(obj, key=lambda x: (x[‘str_2’], x[‘str_1’]))
obj.sort()が独自の比較ロジックを実装してるなら
それを比較関数として切り出してsort()/sorted()に渡す チームメイト(そのソフト作成者)に相談したら返事もらえたのでまずそのとおりにしました
python -m pip install pyenchantで 3.0.1 が無事インストールできました
>>330
ERROR: Package 'pyenchant' requires a different Python: 2.7.13 not in '>=3.5'と言われました
>>332
conda install -c xrysoflis pyenchant==1.6.6しましたが
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistenc-
- https://repo.continuum.io/pkgs/free/osx-64::ipython==4.1.2=py27_1
(同じようなものが何行も)
failed with initial frozen solve. Retrying with flexible solve.
Solving environment: -
でこれ以上進まなくなりました
>>333
残念ながら今の私には理解できません
>>334
私のはbashのままのようです
早速インストールした環境を使ってそのソフトを動かしたところ、
SyntaxError: invalid syntaxと言われました。
チームメイトによるとそのソフトはmacで起動確認してないので動かないのかもしれないそうです
ええ…
幸いwindows ならその人が全部やってくれそうです
質問に答えてくださったみなさんありがとうございます
勉強になりました。特に==を<に書き換えるあたりは興奮しました
もし補足やうまくいきそうな方法があればまだ見てますのでお願いします いつもありがとうございます。こちらで回答をいただきながらスクレイピングを行っている者です。
個別でURL、タイトルなど取得し無事に出力することができたのでページ内の全URLを出力してみたところ、
予定では別々な25件のURLが出力されると思ったのですが、
同じURLが220件出力されてしまいました。原因はenumerateの使い方が間違っている。
取得する場所が間違っているからだったりするのでしょうか?
import requests
import re
from bs4 import BeautifulSoup
page_url ="https://news.yahoo.co.jp/topics/top-picks"
r = requests.get(page_url)
soup = BeautifulSoup(r.text, features="html.parser")
item_list = soup.find_all(class_=re.compile(r"newsFeed*"))
for num,item in enumerate(item_list):
news_url = news.find(class_="newsFeed_item_link").get("href")
print("num:", num)
print("url", news_url)
print("*" * 100) >item_list = soup.find_all(class_=re.compile(r"newsFeed*"))
それは正規表現か?
そりゃ、完全一致じゃないから、かなり多くのclass が該当するはず >>340
とりあえずIPythonとかのREPLで確認しながらやれ
item_list = soup.find_all(class_=re.compile(r"newsFeed*"))
の後にREPLにitem_listとタイプしたり、len(item_list)とタイプしたり、item_list[24]とかタイプすれば
中に何が入ってるか、何件取得できてるか、思ったものが取得できてるかを確認できる
試行錯誤しながらいいけど
CSSセレクター勉強して欲しいものを取得できるようにならないとスクレイピングとか無理よ
item_list = soup.select('li.newsFeed_item > a.newsFeed_item_link') スクレイピングは、他人が作ったソースコードを解析するから、かなり難しい。
なぜかと言うと、作者は仕様を知っているけど、解析する方は知らないから。
答えを知ってる者には簡単だけど、知らないとかなりの時間を損する!
初心者は、やめておいた方がよい
作者の仕様を予想するのと試行錯誤で、かなりの時間を損するだけで、
全くプログラミングが上達しないから!
自分で、練習用のサイトを作った方がよい
スクレイピングは、プロでも無料ではやらない。
他人の滅茶苦茶なソースコードを見ても、何も学ぶことが無いからw
単純に時間の無駄 Web技術はこまごましてて難しすぎるんだよな
CSSセレクターって何だろうと思って調べてみたが理解できなかった >>341
正規表現です。該当してる中から取得するやり方ではいけないんですね。
>>342
わかりました。セレクターも入力してみて何が取得できるのかなど一通りやってみます。
>>343
基礎学習の後にスクレイピングがおすすめと記載されていることもあるので簡単な方だと思っていました。
よく見るサイトやフリマ系など必要なデータを取れるようになれば時間の時間の短縮になると思いましたがそのレベルになるのは難しそうですね…
皆さまご丁寧にありがとうございます。参考にさせていただきます。 自分で書いた、HTML をスクレイピングすればよい。
そうすれば自分が仕様を知っていて、色々いじくれるし、
自分のPC 内で、何回でもテストできる
他人の作ったページは、いじくれないし、ほとんどが無駄な部分。
しかも、作者だけが知っている仕様を解析・予想するのに、かなりの時間が掛かる
普通は仕様書・設計書から、実装を作るけど、
逆に、実装から仕様を予想しちゃいけない!
これは、自然とは逆方向に向かうから、非常に難しい。
だから、リバースエンジニアリングは、無料ではやらないわけ
それに、かなり時間を掛けて、作者だけが知ってる答えを見つけても、何にもならないw
他人のアプリの仕様なんて、人それぞれだから、参考・勉強にならない。
自分が作る仕様と無関係 最終的には他人の作ったサイトから情報を抜き出せるようにならなければ意味がないけどね。 スクレイピングは試行錯誤してれば急にサクッとできるようになるから
パズルみたいなものだと思って楽しめばいいよ utf-8でpythonから出力したファイルをExcelで開くと文字化けします
確かExcelはBom付きで保存しなおせばいいと思って、
メモ帳で開く→utf-8Bom付きで保存→Excelで開く
をしても相変わらず文字化け
前は同じ出力ファイルを開けたのですが、なにか抜けているのかなぁ? >>351
1嫁
> ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
> 実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。
+うまくいかないファイルとやらにだけ日本語含まれてたりしないか? >>352
すいません
自己解決しました
Pyhotn側のコードを何度かバージョンアップするうちに、
ヘッダーが壊れていました
大変失礼しました java遅くて嫌いなのにnode.js仕方なく入れたら旧式Python入れられてパスまで通されたわ encoding='utf_8_sig'
とすればBOM付きになってそのままExcelで開けるんですね
今までの苦労はなんだったんだろう・・・ >>347
基礎の後に実践としてスクレイピングがオススメなのは間違いないよ
コレクション処理、テキスト処理、ネットワークI/O, ファイルI/O等
アプリケーションプログラミングにおいてコアとなる概念を学べる
それにYahooは比較的スクレイピングフレンドリーな作りだからいいチョイスだと思うよ
CSSセレクターみたいに1~2日で学べるような知識は
必要になったその都度身につけていけばいいんだけど
問題なのは何が間違ってるかを自分で調べる方法をほぼ持ってない事
まともにプログラミングできるようになるには
何が間違ってるかだけじゃなく
何が間違ってるかをどうやって調べればいいのかを知ろうとするマインドが決定的に重要 >>339
condaでinstallする前にpipで(サポート外の)3.0.1を入れたからじゃない?(でもよく入ったね?)
エラーメッセージ読めばわかると思うけど、環境の不整合が起きてるんだと思う
>SyntaxError: invalid syntaxと言われました。
pyenchantは3.0.0からpython2のサポートしてないのでpython2.7ではpyenchant 3.0.1入れても不具合でるんじゃないかな
https://github.com/pyenchant/pyenchant/releases/tag/v3.0.0
例えばpython3から導入された(python2に対応してない)構文で書かれているコードをpython2で動かすと、対応してないのでSyntaxError(構文エラー)が出るということはありうるよ
もちろん、チームメートの人が言うようにOSの問題かもしれないけど
とりあえず、環境構築の質問はそのチームメイトにした方が確実だよ HTMLのスクレイピングは簡単だが
JavaScriptだと一気に難しくなる コロナの自粛期間を利用してPythonを勉強し始めました。
下記のCのコードをPythonに変換しようと思ったのだが
いきなりforループの書き方でハマってます。
ご教授お願いします
#include <stdio.h>
long combi(int,int);
int main()
{
int n,r;
for(n=0; n<=5; n++){
for(r=0; r<=n; r++)
printf("%d C %d=%ld",n,r,combi(n,r));
printf("\n");
}
}
long combi(int n, int r)
{
int i;
long p=1;
for(i=1; i<=r; i++)
p=p*(n+i+1)/i;
return p;
} def combi(n,r):
__p = 1
__for i in range(1,r+1):
____p = p * (n-i+1) // i
__else: return p
for n in range(1,6):
__for r in range(n+1):
__print(f"{n} C {r} = {combi(n,r)}")
どうでもいいが元のコードのcombiは式が間違ってると思う for n in range(1,6):
__for r in range(n+1):
____print(f"{n} C {r} = {combi(n,r)}")
のミス >>363
Cって、forearchないんだっけ?あれと一緒よ CできるのにわざわざPythonを学ぶ意味がわかんねえ
PythonにできてCにできないことはないだろ >>367
> Cにできないこと
コンパイラ要らずの安易さ。
Cの他に何でもいいから適当なスクリプトは出来るといいと思う。 >>367
できればいいって言うわけじゃないだろ
「簡単に」できるとか「安全に」できるとか「わかりやすく」書けるとかも重要だし >>358
今pyenchant3をアンインストールしてから
pip install pyenchant==1.6.6してそのソフト実行したらsyntaxerror 出なくなりました
そして.dll: unknown file typeと言われました
ソフト作成者に言ったら「気づかなかった」と言われました
以上です。本当にありがとうございました >>368
それは IDE にそういう機能を付ければいいだけの話
Java とかコンパイラが必要だが、eclipse を使えば
特にコンパイラのわずらわしさはない >>363 >>364
ご教授ありがとうございます。
Pythonのforループの書き方がちょっと独特ですね。
ご指摘いただきましたcombiの式、確かに間違ってました(笑)
正:p=p*(n-i+1)/i; >>336
class my_obj:
def sort(self,tgt):
if type(tgt) is list:
for i in tgt:
〜〜〜
elif type(tgt) is str:
〜〜〜
こんな感じでどうっすか? やはりその形ですかー
同じメソッドならチェーンでない方法で連打できないかなと思ったのです。引数に無理やりイテレータぶち込むみたいな >>375
何をしたいコードなのかよく分からないがエスパー力すごいな こーゆうエスパーが勝手に要件勘違いしてバグ仕込むんだよなー プログラム言語のPythonを大学でやることになりました
Pythonの一般的な言語に対しての欠点を教えてください
また文法が簡単に書けるのは豊富なライブラリがバックにあるためだと聞きました
何でもかんでもライブラリ頼りになることはなんか弱点というか危険なこととかはありませんか?
すいませんが教えてください 型の宣言をしないから型というものの意識が非常に弱いプログラマーとなる。
C#などでjson受ける為のclassなど書けるレベルにならないと駄目。 ・相対的に遅い(ライブラリ使ったら大抵はそこそこ〜かなり速い)
・コンパイラ型の言語に比べて型システムがゆるいので移行するのが面倒くさい(必ずしもする必要はない)
・exeファイルに固めるのが苦行(これは本当に欠点)
職業プログラマを目指さないならどれも全くどうでもいい問題 ありがとうございます
Pythonは特段優れた言語ではなく
現在評価されているのはライブラリがたまたま現在需要がある
AI関連のヤツが充実してるからと聞きました
Pythonは廃れる危険性は薄いですか?
C言語やJavaと仮に一本でやるにはどれがいいですか? >>384
本職目指すなら一本に絞ること自体ナンセンスだから取っつき易いのから始めて全部やれ。
研究の道具とかで何らかプログラミングができるようになりたいというなら、具体的な用途を示さないとどれが適切かは分からない。
言語本体だけで見ればその中でpythonは遅い方だが用途によっては全く問題ない速度が出たり、他の言語で作るより速いものが作りやすいこともある。 >>385
オープンソースソフトの未来は誰にもわからない
開発コミュニティがやる気を失ったりケンカ別れしたらそれでおしまい
これから言語はたくさん経験するんだから、とっかかりとして気楽にやればいいよ 得意分野違ったり何やるかにもよる
javaとかループする計算早い!とかいいながらGUIクソ遅いし 教えてもらえませんか?
任意の場所に多角形があって
多角形の辺を3cm、4cm、3cm、4cm.....と多角形を大きくする感じにしたいのですが
多角形の頂点を角度に合わせて計算して膨張させたつもりが
図形が移動するだけになってしまいました
vertはそれぞれの頂点座標です
移動する長さの計算は合っているんですが
元の座標がマイナスになったときにうまくいきません
どうしたら膨張させる様に頂点の座標を計算できますか
↓自分が作ったのはこれです
from mathutils import Vector
for v in vert:
___p=v+Vector((3,4))
___print("新しい座標は",p) >>392
ありがとうございます!
割合で計算し直してみます
たすかりました! >>380
基本的に欠点が少ないから普及してる
型付けについては長所短所は裏表で
動的言語と静的言語は一長一短になる
ただ両方使えるに越したことはない
しいて言えば内包表記とか表記がやや煩雑で
Rubyの方が書きやすいと個人的には思うが
AIライブラリが充実してるからみんな使ってる
>何でもかんでもライブラリ頼りになることはなんか弱点
そりゃ何でもライブラリ頼りなら
プログラミングが上達しないことが弱点なんじゃないの?
一方で車輪の再発明すると時間を浪費するのも事実だけど Intel Distribution for Python
って実際どれぐらい速いんですか? >>384
>AI関連のヤツが充実してるから
流行したのはそれが大きいだろうけど
>Pythonは特段優れた言語ではなく
いやそこそこ優れてるとは思うけどね?
他の言語と比べればわりと書きやすい方
同じ動的言語でもPerlやPHPやJavaScript
より書きやすいんじゃない?(Rubyが一番だけど)
>Pythonは廃れる危険性は薄いですか?
薄い
もし将来廃れるとしても
十年、二十年は持つだろう
>C言語やJavaと仮に一本でやるにはどれがいいですか?
PythonやってればCやJavaもそこそこ書けるはず
CのポインタやJavaの静的型付けでつまずく
かもしれないが多くの基本は共通している
まず易しい言語のPythonを
ちゃんと読み書きできるようになろう! Pythonは何で短い行で他の言語と同じ命令ができるのですか?
(例えばプリントメソッドなど) 裏で妖精さんたちが頑張ってくれてるから
それと引き換えに妖精さんにわかる言葉でお話する時間だけ処理速度が遅い >>398
妖精とは?
ライブラリとはまた違うんですよね? >>397
一言で言うとPythonの中に命令が書いてあるから 妖精は心がきれいな人にしか見えないんだよ
ライブラリは心が汚い人でも見える >>400
そうなのですか
でもじゃあなんで他の言語じゃそういう仕組みがないんでしょうか >>402
それはPythonがわりと若い言語だから
同期のRubyも同等の短い命令で書ける Goもやってみたいけどライブラリが少ないからなぁ、kivyみたいな便利なものが欲しい >>403
短い命令で書ける代償に何か遅いとかある? あるよ
妖精さんのMPが尽きたら動かなくなっちゃう >>397
プリントなんてどの言語も大差ないと思うけど
どんなコードを見ていっているの? public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello, world");
}
} Javaはいちいち大げさすぎる
Pythonとは文化が全く違うのでこのスレ民には用無し Javaは大規模開発に向いている
小規模でちょこちょこやりたいなら、Pythonで十分 しかしpythonのself地獄はいかんともし難い
となるとpythonはそれ用には作られてないのではと思ってしまう simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
学術巨大掲示板群: アルファ・ラボ
ttp://x0000.net >>412
そらそうよ
Pythonのオブジェクト指向機能は後付けだからな
最初から純粋なオブジェクト指向言語として作られたJavaとはモノが違う >>405
Pythonは遅い言語だよ?
部分的にトレードオフがある
型を書いた方が早いとか >>414
JavaよりRubyの方がより純粋なOOP言語だよ 後付けというかJavaScriptと同じプロトタイプだからな。
JavaScriptのthisとPythonのselfどっちがマシか? >>415
でも主要な所はライブラリでCで書かれたのを使うから
実質は速いから問題ないっていう声も聞くんですが グダグダ言ってないで書いてpythonのできる範囲内ではどうやって遅いと思うなら他の言語に移植すればいい
その程度のスピードは出る
最初から世界最速目指さないと死ぬっていうなら別の言語のほうがいいが >>397
> 短い行で他の言語と同じ命令ができる
そうとは限らない。 >>418
高速なライブラリがあるから、それを使う処理は高速にできる。
pythonという言語自体は他の言語に比べて相対的に遅いから、pythonで記述した処理は相対的に遅いから遅い。ただその遅さが許容できる範囲内かどうかは要件次第。
何も矛盾はしてないぞ。
要はケースバイケースなんだから、単に遅いとか速いとかバカな理解のしかたをしないで、正しく使い分ければいいだろ。 プログラミングせずに口だけ動かしてたら妖精さん逃げちゃうよ! Java 系と python 系では思想が違う
Java はなんでもちゃんと書くという思想
python はなるべく書かないという思想
それだけのこと
長所、短所は何とも言えない んな思想はない
Explicit is better than implicit. >Explicit is better than implicit.
この考え方も後付けなんだよね 遅い早いとかおまえらのレベルじゃ気にするレヴェルじゃねーだろ >>427
全くの別物だけど、どういうところが紛らわしいと思うの? >>429
スルーしてたけど全く別物でワロタwww ありがとうございます。こちらで教えていただいたおかげで無事に1ページ目のURLやタイトルを取得し出力することができました。
今はページを遷移して全ページのタイトル、URLを取得しようとして、次へのURLは取得することができたのですが
最後のページは次がない為苦戦してます。get_htmlメソッドで別のページのhtmlを解析している動画があったので私も使ってみたのですが、
なぜか使えずNameErrorになってしまいました。何が原因なのでしょうか?get_htmlメソッド以外にもラストページのhtmlを解析できる方法がありましたら教えていただければ幸いです。
質問がわかりにくく申し訳ございませんが、宜しくお願いします。 >>432
1.htmlを解析する
2.次のURLがある場合取得して1に戻る ない場合、終了する
だけなんだけど、エラー時の対処方法が分かりませんということかな
if文で分岐するか、try ~ exceptで囲んでしまうかなんだけども >>431
enumは後から値を書き換えられない&キーを追加できないかわりに、読みやすい、キーがシンボルなのでtypoしてもすぐに見つかる、値からキーを引けるのが大きな違いかなあ >>432
ようわからんからサンプルソース
https://ideone.com/0KvMNh
ideoneに貼っつけたらURL部分が変わってしまったので、
main()の最初のnext_urlにはtopのURLを入れたら動くはず >>434
違いはイミュータブルとみやすさってことですかね
値からキーなら辞書でもitems()と内包表記でできますね
キーがシンボルというのはどういう意味でしょうか >>427
元々は数十個の連番の定数を定義するためにC言語で使われた
enumなんかは存在せず、全てdefineでやっていた
それが40年ほど掛かって進歩して、今日のenumになった
なので直感的に理解しやすいのはC言語のenumで、それ以降のenumは抽象度が上がってるので理解し難くなっている
そして現代プログラミングではそもそも連番の定数というものは使わない
連番の定数による状態の区分けと、OOPでの状態の区分けは、機能が相反する 月の名前
4月 と April
とかは、一度定義すれば変わることはないので、一度定義したら変更不可にしておいた方が安全だというのが enum の有効な使い方 >>432
ありがとうございます。エラーの対処がわかりませんでした。if文で作ってみますね。
>>435
不十分ですみません。コードありがとうございます。参考にさせていただきます。 >>436
enumと辞書は根本的に用途が違うよ。
enumは固定の値として使うもの。一連のグループとして括られるある定数の集まりに、分かりやすく名前とその値を決めてあらかじめ定義しておくためのもの。
辞書は入れ物。プログラムの処理の中で、必要に応じて中身を追加したり変更したり取り出したり削除するための箱。 tkinter.ttkってtkinterのサブモジュールだからfrom tkinter import * でロードされないのですか?
また
from tkinter import *
from tkinter import ttk
だと丁寧でないので
import tkinter as tk
import tkinter.ttk as ttk
としたいのですが、なにか(二重ロードなど?の)問題がありますか? Pythonのインデント強制って結構欠陥じゃないか?
コピペが安定的にできんし見た目で何個空いてるのかも分からん 俺も強制インデント好きじゃないな
括弧の方が好き
> コピペが安定的にできんし見た目で何個空いてるのかも分からん
不可視文字表示のプラグインを入れればいい インデントがバラバラだと
イラつくから統一してるんだろ?
でもオレもRubyみたいに
整形の自由度高い方が好きだが そんなに嫌いではないけれど、やっぱ長い関数やクラスだと見づらいわな。
tensorflowとか長ったらしい関数使う割にインデント2って最悪だわ。 関数名や変数名で単語の区切りに大文字を使うことはしないの? kivyのcanvasにctypesでがっつり描いてGUIやってる >>447
そうでもない
>>448
のぞましくない という。
少なくとも、先頭には使っちゃいやーん。
(クラスかなにかと、まぎらわしくなるからだとかなんとか)
ただし、
不変な値の名前に、ならば、
全部大文字ならおk...らしい。
例) URL_TUPLE=("http://5ch.net", "https://5ch.net") >>447
じゃあ何で書いたら楽なの?
Ruby on Rails ぐらいしか選択肢がないが 偉大な言語には接頭語を付けて「おPython」と呼ぼう >>456
「(上級者wwwからしたら)くだらない(かもしれない)質問を書くスレ」の略語らしいぞ Python, Markdown, Yaml などは、
VSCode の有名な拡張機能、indent-rainbow でカラー表示できる! vscode入れ直したらクラスは2行開けとか、カンマの後はちゃんとスペース入れるとか、空の空白入ってるとかで警告出てたの出なくなっちゃった
どこいじったのか覚えてないや >>463
多分select interpritatorでpython実行環境を設定してないのが原因 python.pythonPath 設定してないんだろな pyautoguiでも何でもいいのですが、
別の仮装デスクトップ上に画面とか展開して自動で動かす方法はないですか?
メインのデスクトップ上では他の作業をしてるので、自動化作業は、別の仮装デスクトップ上で不可視の状態で進んでいて欲しいです。 >>466
無理
俺も前似たようなことやろうと思ったけど、仮想デクストップ系の制御はあんまり融通が効かない 出来ないこともないけど最初から仮想の方で動かせば完結してない? >>466
画面・マウス・キーボード切り替え器for2台用を購入して
パソコン本体を2台にしる 作業内容にもよるけどブラウザで完結するならselenium使えばいける Pythonでグラフィック使ったゲーム作りたいんですがGUIライブラリ入れたらできますか?
方法があれば教えて下さい。試しにKivyての入れようとしたら難しすぎて無理でした。 >>472-473
「ハサミを買っても使い方が難しくて分からない」と言ってるやつは
永遠に「ハサミで紙を切る」ことができないままだ。
アナコンダはGUIアプリを作るためのものではないので
へのつっぱりにもならん。 ゲーム作るならPythonを今すぐ投げ捨ててUnityを使おう
Pythonに拘って今どれだけ苦労しようともいずれ必ず他へ移行することになるんだし、Unityなら初心者向けの本などは腐るほどある kivy慣れるとめっちゃ便利なんだよな
しかも覚えるとUnityやSwiftまで簡単に見えてくる >>474 Kivyは使ったことすら無くてインストールでつまずいてます。
>>475 調べたらUnityはゲームエンジンで言語はC#ですね。C#用の無料IDEがあるかどうか。
>>476 そうですかインストール頑張ってみようかな。簡単に越したことはないし Unityはそれ自体IDEだし、個人ならVisualStudioも無料 GUIアプリってのもまた微妙な言葉だな。
ゲーム、ブラウザ、デスクトップアプリ、スマホアプリ
でも取り扱いが全然違うだろ。 わかりやすい解説見つけたからやってみたらKivyインストール出来た
せっかく環境作って途中まで勉強したしPython + Kivyで作ってみます。ありがとうございました >>480
ここまでスレ使ったんだから
その
「わかりやすい解説」とやらのページに行くための検索単語か
「h」をとったttp以降のアドレス書いてけよダボハゼ いやせっかくUnity教えてもらったし迷ったけどKivyの方が簡単て聞いたからだけど
結局Kivy入れるならもっとKivyのインストール調べてから聞くべきでした。失礼しました
参考にしたブログは
ttps://algorithm.joho.info/programming/python/kivy-install/ pythonとはライブラリである
実際のプログラムはjuliaで書く
pycallで呼び出せばいいのだ これのインストールのどこが難しすぎるんや???
煽り抜きでがちで解せぬ
zip解凍してexe叩くのに比べて難しいってこと?何と比較して難しいの?え? 質問です
100万個くらいの点があって、それぞれ名前、X座標、Y座標を持っていて、
その中で2点間の距離が、ある範囲にある点の組を抽出したいのですが、
速度が速いのは、どういう方法になりますか?
いまは全然Pythonっぽくなく、単に各点の名前、座標でリストにして、
X、Y座標のforループ2つで、距離はmathで三平方の定理…です
ただ、100万×100万÷2も回すのはさすがに辛いので、
一応時短のため、先にリストはX座標でソートしておいて、Xの小さい方から評価して、
X座標の差が、距離の範囲のmaxを超えたらbreakでXのループ抜ける…ってのだけしてます >>486
距離をもとめる計算の部分を
numpy.linalg.norm でも使ってみたらどうだろう とりあえずマンハッタン距離で評価してマンハッタン距離>=ユークリッド距離は自明だからそれでフィルタする 空間を適当なサイズのメッシュで分割して、互いに近くにあるセルのペアに含まれる点だけで距離を計算すればいい
俺も全く同じことをやったことがあるんだが、見も蓋もないことを言えば
ぶっちゃけ手間暇かけてそういう工夫するよりCで普通に二重ループぶん回した方が結局手っ取り早くて遥かに速いよ >>486
一回しかやらない処理ならpythonでいいけど、毎回計算処理入るようなシステムに組み込むならコンパイル言語でやった方がいいわ。 >>490
>互いに近くにあるセル
この判定がめんどくさそうだな >>486
理論的なことは他の人が答えているので実践的なことを一つ
モジュールscipy.spatialにKDTreeってのがあるからそれで解決 >>487-494
回答ありがとうございました!
いろいろヒント貰ったので、それぞれ試してみます
>>493
さすがに1兆回やりきったことはなくて、
>>486で、データによるけど100億のオーダーくらいには減らして、
6時間〜半日くらいかかってます(遅いノートPCだからってのもありますが) class Base():
__def __init__(self):
____self.a()
____self.c()
__def a(self):
____def b():
________pass
__def c(self):
____pass
self.c 内の処理でself.a内関数bを呼び出したいんですが、なんと書けばいいのでしょうか >>496
def a(self)の戻り値にreturn bとして関数を返す
そうするとself.a()で関数bが帰ってくるから
b2=self.a()
b2()
で呼び出せる
一行でかくならself.a()()となる マルチスレッド・プロセスでやるとリークの温床になりそう。
Baseオブジェクトがbオブジェクトに依存するという関係が。 マルチプロセス入れたら軽くなった
global使いまわしてるとこエラー出まくってたけどTryで解決した 座標系aで表された3次元の点群の組と
座標系bで表された3次元の点群の組があって
座標系a→bに変換する行列をsolveするライブラリはありますか
aとbはどちらも直行座標系で、回転と並行移動で変換できることは既知です
そして各座標における点の対応関係も全て既知なので、pnpみたいにsolveして欲しいイメージなのですが ちなみに何をしたいかというと
座標系aでは点群は全てz軸上に乗っていてx,yは全て0なので
座標系a上で、別の2次元点群をx,yに配置して(zは等間隔に適当に配置)
a→bの変換によって座標系b上で点群に沿ってこの2次元点群を投影したい >501
>回転と並行移動で変換できることは既知
そこまで判ってるなら逆行列で終わり Pythonはどうして同じ命令を他の言語と比較して簡素に記述できるのですか? >>508
簡素なことを書いたら
いっぱいある暗黙の作業な部分はPythonアプリ側が勝手にやってくれてるから 中カッコを書かないとか
型宣言をしないとか
文の終わりに記号がないとか
そのへん? >>512
デジャヴなんだ
じゃあ大学か専門あたりの追試に出てるんジャネーノ >>508
前にも言ったが言語(環境)の中に
より詳細な命令が書いてあるから
ただしその分実行速度が遅くなるが 型無し言語だからに尽きるんじゃないの?
ライブラリの充実具合ならjavaやc#に及ばないし この質問別のスレでも見たな
>>508
・比較しているのは具体的にどの言語か
・具体的にどのようなコードか
この二点を明確にしてくれ >>514
どうして遅くなるのにPythonはそのような仕組みを採用したのですか? from XYZ import XY as Z でパッケージを読み込み自作クラスA内でz=Z()とインスタンスを作成しています
このインスタンスzがエラー吐いたとき、exceptになんと書けば捕捉できるのかおしえてください
エラー内容は
raise RegexMatchError(caller="get_config", pattern="config_patterns")
XYZ.exceptions.RegexMatchError: get_config: could not find match for config_patterns
です
z.exceptions.RegexMatchError や z.RegexMatchError ではno attributeと言われてしまいました >>517
人間が読み書きする速度が早くなるからだよ
実行速度より開発速度を取るのが動的型言語 なるほど…
遅い遅いって具体的に何が遅いんですか? >>519
caller="get_config"
たとえば↑これだと、callerにはただの文字列「get_config」が渡ってるんだけど
それでいいのか?
もっと上の方で変数名get_configとかに何かリストなり文字列なりをあててて、
それを引数として渡したいのなら書き方違うぞ。
あと
raise RegexMatchErrorで検索するとpytubeなるものしかHitしない件。
そして
それんなかのpatternには
通常たぶんre.pattern(なんや正規表現な指示)で
コンパイル済みの文字列が入っている件。 >>521
520のレスを おうちのひとに よんで もらってね! >>522
AtomのRunnerのコピペだと上記のような感じ
e.type すると class `XYZ.exceptions.RegexMatchError`>
e.aegs すると `get_config:could not find match for config_patterns`
です。インスタンスはz=Z(文字列)で、例外処理を書きたくてわざとアンマッチな文字列投げてるんですが
どうキャッチしたらいいのかわからないのです おっと
except Exception as e : str(type(e))とstr(e.args)ですね >>519
RegexMatchErrorを定義してるpytube.exceptionsモジュールをimportしてればexcept RegexMatchError:
import pytubeしてれば except pytube.exceptions.RegexMatchError: メインクラスがあって、メンバとして別クラス(仮にA)のインスタンスを持っているとき、
Aの中のメソッドからメインクラスのメンバやメソッドにアクセスするにはどうすれば良いですか。 え、普通に
メインクラスのself.クラスAのインスタンス.メンバ
でアクセスできないですか? おいーす 俺Python初心者
Pythonはインデントが必須らしいけどコピペするときとか困るんじゃないの?あとめんどくさくない?
この言語ってええの? >>528
Aのコンストラクタにメインクラスのインスタンス渡してA側でメインクラスのインスタンス保持させておいてそれ経由でアクセスする >>529
有難うございます。
メインクラスからAのインスタンスのメンバにアクセスしたいのではなく、
Aのメソッド中からメインクラス(のインスタンス)を参照したいのです。
もうすこし具体的にやりたいことは、メインクラスでウィンドウやUI処理させて、
Aクラスは裏で通信やデータ処理をして、結果をUIに返すみたいなことです。
データ処理の結果を、メインのUIでメッセージボックスやログウィンドウに出力するのに、
メインクラスのメソッドを呼ぶにはどういうクラス構成にしたら良いのかなという疑問でした。
>>531
やっぱりどこかでメインクラスのインスタンスへの参照を渡さなきゃいけないのですね。
ありがとうございました。 >>530
初心者以前じゃね?
こまんないよ めんどくさいかどうかは、入力補助アプリ使うかどうかとかによる
いいかどうかは目的次第だが、流行ではある。 >>530
コピペミスなら見た目で判断できるから問題ない
きれいに書くクセがついてない人を矯正する言語と考えれば初心者向けではある >>535
いちいち目視でチェックすんのか?
数百行に及んでたらどうすんだ? >>536
直せばいいと思う
あなたはプログラミング上のミスをどうやって修正してる?
数百行書いてる時点でその他のミスもでてるはずだけど、それと同じように直せるはずだよ 数百行に及ぶインデントエラーの出るコードなんて捨てちゃえ。 >>536
かの秀丸エディタ様には
範囲選択して右クリック→インデントを増やす・減らす機能があるぞよ。 >>536
Pythonはコピペに対して脆弱なのは間違いない
そこは諦めて使うかミスが発生しそうなコピペはやめるか
対象範囲のみdiffとったりしてリスクを許容範囲まで下げる
>>537
「目視でチェックするのか?」って聞かれて
「直せばいいと思う」ってなんやねんw
>>538
エラーが発生するケースはまだマシ そもそも
インデントエラーがスーパー出まくるような
くそ長いorむやみに深いネストを作るな。
538が言う通りである。 こいつらpycharmもしらんのか?
使ってたらインドンテがずれるとか一発でわかるんだけど >>542
出まくるとかじゃなくて一ヵ所でもあったら動作しないだろうに >>541
エラーに行数出るんだから簡単に直せるじゃん
数百行はどうすんの? なんて言ってる奴はインデント以外のミスはどうすんだよ?って話 どうすんの?って書いてる奴は別に今困ってるわけじゃないんだよな?
将来の杞憂をここに書かれてもな
嫌ならpythonやめて他の言語覚えてもいいんだよ? >コピペミスなら見た目で判断できる
どうやって見た目で判断するの?
>直せばいいと思う
は?
>エラーに行数出るんだから簡単に直せる
見た目で判断できるから問題ないというのは
エラーで行番号がわかるから修正可能って意味だったのかー
エラーになってくれるといいね すみません>>530ですが、メモ帳でしかプログラミングしたことないですのでツールの話はやめてください
pythonはやめてScalaにします ヲタはすぐにツールとかでマウント取りたがる
別に自分で開発したわけでもないくせに
ツールに頼るとコードを書く能力が落ちるぞ PythonよりScalaの方が難しいし
メモ帳しか使えないのに
使いこなせるとはとても思えない むしろツールを使いまくってコードをできるだけ書かないのが最近のトレンドだろ
目的がコードを書くことになっちゃあかんぞ
と、コードを書くことが好きな人が多い板で言ってみる Software Design 2月号の、Python 特集に、
VSCode で、Microsoft 製のPythonの拡張機能を入れて、
Python.jp の手順通りに、venv で仮想環境を構築すると書いてある
Windows 10, WSL, Ubuntu 18.04 なら、最初からPythonが入っている。
VSCodeの拡張機能・Remote WSL で、Linux にアクセスできる
file `which python`
/usr/bin/python: symbolic link to python2.7
file `which python2`
/usr/bin/python2: symbolic link to python2.7
file `which python3`
/usr/bin/python3: symbolic link to python3.6 >>556
うまく表現できないが、補完機能を使って書いたコードには魂が入っていないから
書いた本人もコードの内容を三日で忘れてメンテできなくなると思うんだ 補完機能を使ったらコード内にコメント書かないとか
あふぉといったらあふぉに失礼なレベルだぞwww software design ってネラーの暇人が小遣い稼ぎに記事描いてるイメージ コロナで暇だからって超初心者スレで釣りしないでください!最低ですよ! a = 1
"a" + str(a)
型無しスクリプト言語なのに変換必要な意味ってある?
ここらへんの思想どっかに載ってないかな >>562
Rubyも暗黙の型変換は(標準で)しない
なお型が無いのではなくて動的型付け言語だ
それでなぜ自動で型変換しないかといえば
バグの原因になりやすいから
個人的にもしなくていいと思ってる
ほんのちょっとの型変換を省く手間より
デバッグの労力が大変になる方が大きいから 型がないというより、型がなんなのかを考えてくれる機能が付いている
その機能がカバーしてない部分は型を宣言しないといけない ぶっちゃけ現場によってはセキュリティによって
ツールのインストールがくっそ面倒な所があるから、何となく気持ちは分かる
例えば秀丸のみ使用可の所とVSCode+使用可プラグイン(特にflake8とBlack)が使える所で
同じPythonプログラムの開発やらせたら絶対に印象が変わる Python使う現場でVSCodeが許されないとか聞いたことない ある無しと異常かどうかは別の話
混同する人はプログラマーに向いてない いわゆる「人権が確保されてない」スペックしかない
クソなPCしか置いてない現場も世の中にはごまんとあるんですよ! 秀丸が好きでそればっか使うとかならわかるけど、それしかダメな理由がわからん >>562
数値の加算と文字列連結は全く意味の異なる演算であり、それらを同一のものとして扱いたい場面は現実にはほぼ全く無い
関数の引数に渡した値の型によって関数中の+が数値加算になったり文字列連結になったりすると、おそらくどちらか一方の挙動はバグでしかない
だから、文字列となるケースを限定ことでバグの可能性を(完全ではないが)抑えている
Rubyも同じだが、静的型付けでないからこそ型による制約を強める必要がある代表的な例だ
一方で例えばJavaやC#では数値+文字列は暗黙的に文字列連結になるが、これは静的型付けならどっちの挙動になるかは文脈から間違いなく明らかだから問題ないんだよ まともなセキュリティ規範を持っている組織なら、IT環境へのフリーソフトのインストールや
ネット接続は厳しく制限されているのが普通なわけでして
特別に認められたソフトしか入れられないというのは当たり前で、ましてネット接続を前提とした
VSCodeのようなプラグイン拡張を売りにしているツールの導入は至難の業でございます つーかこの板にいるほど知的好奇心高い人たちがなんでSIerで働いてるんだよ
客先常駐じゃリモートワークできるところも少ないだろ 質問です
Cython?とやらを使えばC言語に変換できて高速化できるのなら
どうしてPythonが低速なのが欠点みたいに言われてるのですか?
全部毎回Cythonに変換すればいいじゃないですか 実質C言語と同等なんですよね? SIerはたいてい「客先のセキュリティ要件に準じる」だよ
で結果的にユーザー企業のITリテラシーのない一般社員達のための基準に従うことになる
SIer自身はOSSの導入などに理解のあるところも多いのだが、それについて客に対して物を言えずにペコペコしてしまうことに問題がある
SIerからすれば、工数で金取ってるから不便なほど儲かるしね >>579
Cython使わないとはやくならない
Cythonを適用するのに時間がかかる
さらに
579はあふぉ
↓でもよんでおk
ttps://qiita.com/pashango2/items/45cb85390193d97523ca >>582
いったんC言語に変換したらもうそのままC言語として使えるんじゃないんですか? >>583
>>582と しょうかいされてるqiitaのぺーじを
おうちのひとに いっしょに よんで もらってね! cで書けば書き方に関係なく早くなるわけではない
早くする書き方がある。かなりコンパイラががんばるけど
どうにもならないことはある >>585
でもベストを尽くすデメリットはないですよね?
なら常にベストを尽くすようにすればいいんじゃないんですか? >>586
> ベストを尽くすデメリットはないですよね?
> なら常にベストを尽くすようにすればいいんじゃないんですか?
ヽ|/
/ ̄ ̄ ̄`ヽ、
/ ヽ こっ これが 世にいう
/ \,, ,,/ | 「銃殺刑がふさわしい」レベル・・・!
| (●) (●)||| |
| / ̄⌒ ̄ヽ U.| ・・・・・・・・ゴクリ。
| | .l~ ̄~ヽ | |
|U ヽ  ̄~ ̄ ノ |
|  ̄ ̄ ̄ | >>575
なるほどGAFAは「まともなセキュリティ規範」とやらを持ってないわけですね。
勉強になります。 >>587
プログラムもしたことないのにそんなこと言われても知らないよ ノートPC上でPythonを使って簡単な機械学習アプリを作成しようと思ってます
あまり予算がない場合、
CPUとメモリどちらに予算を割くべきでしょうか?
最高級CPU メモリ8G
そこそこのCPU メモリ16G
だったらどっちが良いですか? 偏らせる意味が分からないし両方そこそこでいいじゃん 後者
リソース足りないならクラウド上で動かせばいいだけ >>595
>>595 + >>584 + ひまわりがっきゅうの せんせいに あした いっしょに よんで もらってね! 客先常駐セキュリティ規範マンくんさぁ、明日も満員電車に揺られるのかい? このご時勢で満員電車があると思ってる自宅警備員はチゴイネ!(・∀・) まあSIerのカスどもは自分の責任になるようなことは禁止させるからな。
結局それだけしか見てねーんだわ。あとはお客に対する土下座が仕事内容になってる。
このご時世ならさすがにリモートさせるだろう。どんなに仕事が滞ろうとも。 質問です。例えば[名前、身長、体重、ウエスト]を並べた2次元リストで、
#こんなリスト→ [['鈴木',173,68,85], ['佐藤',168,59,80], ………]
身長、体重、ウエストで何か計算をした結果で、リストを並び変えたり条件抽出をしたい
で、計算が複雑だったり、人数が多かったりするときの、時間短縮をしたい
numpyだとかの使い方の説明をググると、文字列と数値の混在の例が探せない
そして、↓みたいに数名の例で、名前の部分をprint分に直接記載して表示……とか
print(' 鈴木 佐藤 高橋 田中 伊藤')
print(keisan_kekka)
これは人数が多いと無理なので、ざっくりな質問で恐縮ですが、何かいい方法ありませんか?
計算のために数値だけのリストが必要なら、名前を除いた別のリストを作っても良いかとは思うのですが、
最終的に名前と紐付けないといけないし…… >>591
CPUもメモリも程々
GPUに金かけろ >>596
まだフワフワなんですけど、SVMで分類とかしようかなと >>591
機械学習の種類によるけど
そこそこCPU+メモリ8GB+そこそこGPU
基本はこれ一択
GPU無しは有り得ないwww >>603
ノートPCに取り付けれるAI用ユニットとかありましたっけ?
Jetsonnanoみたいな よく知らんで発言するけど
numpyって数値計算のライブラリだから混在はダメなんじゃない? すまん、svmくらいなら何でもいいわw
セルロン4GBとかでいいんじゃね(鼻ほじ) >>602
>身長、体重、ウエストで何か計算をした結果で、リストを並び変えたり条件抽出をしたい
>で、計算が複雑だったり、人数が多かったりするときの、時間短縮をしたい
したいなら、したらいいじゃない
> numpyだとかの使い方の説明をググると、文字列と数値の混在の例が探せない
numpy知らないけど、Pythonでできるぞ
>これは人数が多いと無理
なんで? >>586
Cの処理(コンパイラの仕組みか?)をわかって書かないといくらでも処理は遅くなるよ あと、ケースによってはdbにぶち込んだ方が早い場合もある >>613
え?翻訳機みたいなのが勝手にコンパイルみたいにチャッチャッとしてくれるんじゃないんですか? >>602
pamdas使えばソートも平均 分散 標準偏差 何でも余裕 >>615
あーこの口調、いつもの質問のふりしてつっかかってくる荒らしだろ
暇だからって荒らすんじゃないよ
即刻NGで Javaしか経験なくて、
どんなデータ型扱ってるのかもわからなくなるのですが
簡単にわかる方法があるんですか? >>619
type()
メソッドやアトリビュートが見たかったらdir() 学術の巨大掲示板群 - アルファ・ラボ
ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など 機械学習系の案件のゴールって何なの?
アプリ系ならアプリ作って終わりなことが多いけど機械学習系のものは運用しながら手探りでやっていく感じ? >>623
偉い人に「やりました」と報告することがゴール
ほとんどの案件はPoCで終わる
ぶっちゃけ異常な持ち上げられ方だったから、コロナショックが明けたらAIブームは一気に収束するんじゃないかな Pythonistaスレで質問してもレス無いんでここで質問してもいいですか? >>623
案件によるだろ
データに適用して結果報告して終わりなのもあったし
学習したモデルをシステムに組み込んで運用してるのもあるよ >>626
ええんちゃうの
自分は使ったこと無いから答えられんだろうが とりあえず貼ってみます
標準入力から文字列を読み込もうとするとエラーになるんですけど、どうしたらいいでしょうか
1 import sys
2 for line in sys.stdin.readlines():
〜
てやると行2でStdin.Catcher object has no attribute 'readlines'て言われます。 >>630
自分の都合のいいレスしかよまない
おめでたいうんこつまってる頭の持ち主だから
理解できないかもしれないが
まず↓を締め切ってこい
http://mevius.5ch.net/test/read.cgi/tech/1540724553/456 クラス定義の外でグローバル宣言?した変数の
スコープはファイルのなかだけですか。 モジュールインポートすればモジュール名経由でアクセス出来る matplotlibのaxes3dグラフで、左手系で描画するにはどうすればよいですか >>636
invert_zaxis()使えば出来そう >> 638
難しい質問だなぁ
何がしたいのかもう少し説明が欲しい
そのものズバリの回答ではないけど、比較演算なら以下のように行える
1. 何もない
JavaScriptのnullに相当するのはPythonではNone
Noneでないかどうかはif val is not Noneでチェック
2. 未定義である
JavaScriptの undefined に相当する定義はPythonにはない
未定義でないことを確認するにはlocals()やglobals()を使って
if ‘val’ not in locals() あるいは if ‘val’ not in globals()
3. 空文字
長さが0の文字列を表すのは””や’’
空文字でないかどうかの判定はif val != ‘’ やif not val
4. 空のリスト・タプル・辞書
空のリスト val=[] の判定は if val == [] あるいはif not val
前者はリスト型かどうかをチェック、後者は型チェックなし
空のタプル、空の辞書も同様
5. 文字列の最後
C言語で言う所のNULL文字の概念はないので否定の概念もない
文字列が終わりかどうかは文字列の長さで行う
6. ヌルポインタ
C言語で言う所の(void*)0をそのまま書くならc_void_p(0)
何と比較しても一致するものがない たんに1.だったんですけどすごく勉強になりますありがとうございます。
Javaしかしたことなくて型が明確じゃないと自動補完が効かなくて不便な気がするのですが
どうしたら便利ですか。 どこでしたらいいですかって基本的にクラス内でしかできんやろ
チュートリアルくらいやったか? >>640
幸せになるにはVScodeやJupyterを使うことかな、それで補完はOK
Noneとか入れてしまうと流石に補完は効かないけど、普通にインスタンス作ったときは補完されるよ
>> 641
ここでチマチマ聞くよりも公式ページのチュートリアルをやる方が早いと思う
https://docs.python.org/ja/3/
の9.3.5.クラスとインスタンス変数に書いてある >>642
Javaのstatic宣言みたいな宣言じゃないのに
メソッドやコンストラクタの外だとクラス変数になるのがよくわかりませんでした。
チュートリアルやります。ありがとうございます。
>>645
PyCharmでやってました。ほかのも試してみます。ありがとうございます。
チュートリアルやります Noneの判定を is でやるのは御法度じゃなかったっけ
それとも御法度は is True/Falseだったか? >>647
NoneもTrue/Falseの判定も is を使う
isを使う場合の御法度はnumpy.bool_型と普通のbool型の比較かな
○ np.True_ == True
× np.True_ is True
例えば変数aがnp.bool_型の場合には
if a == True:
とする必要があるが、linterが入っていると「a is Trueという記法のが良いよ」と言われて直すとバグになる https://ideone.com/e.js/Fq5Yrt
tkinter内で作成したプログレスバーを並列動作させるところまでできたのですが、これを閉じるのはどうしたらいいのでしょうか?check関数で確認すると3本生きたままっぽいです
最終的に、先に終了するth1をカウントダウンタイマーとして使い、th1を閉じるのと同時に遅いth2を強制終了したいのです まったくのプログラム初学者です。
実際に使用されるプログラムにおいてprint()って関数は使用することあるんでしょうか?
どうも実際に動いてるイメージが掴めなくて困っています。 デバッグ
CGI出力
ログ
テキストベースのアプリ デバッグはprint(変数)で何が出力されるか確認するクセ付けといた方がいいよ
print(type(変数))で型も分かるし
これはどの言語でも共通すること >>654
それはCUIのアプリを
使わない(作らない)から まだprintでデバッグして消耗してるの?
logger使おうな デバッグはprintで十分
何かするたびに新しいツールやライブラリに頼るのはPython使いの悪い癖 自動2chまとめ記事投稿のプラグインを買って、色んなサイトに複製したりしてるんだが
これがpythonなのかどうかとかの判断方法ってあるんですかね?
クローラーとかが書いてあったらpython? ありがとうございます。
拡張子はphpのものしかないのでphpっていう言語ですかね。 >>655-657
なるほど、使うんですね!
ありがとうございます。 printで充分間に合うときはそうするけど
副作用もあるし実際困るときはファイルに書き出すし
それならloggerの方が便利だぜってなるのは自然な流れだと思う >>639
横からすいません
すごく勉強になります。
感謝いたします。 すいません、教えてもらえませんか?
a = [[1,2],[3,4],[5,6],[7,8]........]
という感じの配列があるとして(中の数字は適当ですが二個ずつ入ってます)
1,3,5,7の最大と最小
2、4,6,8の最大と最小
を出すにはどうしたらいいですか?
普通だったらmax(a)とかで出来るんですが
行列がふえると分からないです >>668
import numpy as np
a=np.array(a)
max1357=a[:,0].max()
max2468=a[:,1].max()
numpy無しなら
max1357=max(b[0] for b in a)
max2468=max(b[1] for b in a) >>669
ありがとうございます
めっちゃ短いですね、助かります!! Jupyter Notebookを使ってスクレイピングをしています。
soup.find_all(class_="bcs_l")
[<li class="bcs_l"><span>< 前へ</span></li>,
<li class="bcs_l"><a href="/bc/category/?q=%83T%81%5B%83t%83F%83X+%83%89%83b%83v%83g%83b%83v&;sg=%83T%81%5B%83t%83F%83X%81%40%83%89%83b%83v&;rowPerPage=100&;p=2#bcs_resultTxt">次へ ></a></li>]
ここから次のページのurlを取得するために
soup.find_all(class_="bcs_l").get("href")を使用しましたがAttributeErrorになりました。
違うサイトではこのような状況で取得できるようなことがあるのですが、この場合はなぜ取得できないのでしょうか?教えていただければ幸いです。宜しくお願いします。 soup.find_all(class_="bcs_l")[0].get("href") >>674
ありがとうございます。試してみましたが何も取得できませんでした。
lenで確認したところ2でしたので
for link in soup.find_all(class_="bcs_l"):
print(link.get("href"))で確認しましたが
Noneが2つ返ってきただけなので…違う方法も試してみます アクセスしてからsoup.find_allするまでに
何秒か待ったらどうなるの >>675 >>675
for link in soup.select(".bcs_l > a"):
print(link.get("href"))
hrefがあるのはaタグ >>675
すみません、初心者で用語を理解していないからなのか
どういう意味なのかわからないです。
>>675
取得できました。ありがとうございます。aタグから
soup.find_all(class_="bcs_l").find("a").get("href")で取得できないのは
soup.select(".bcs_l > a")と何が違うのでしょうか? >>676
すみません、初心者で用語を理解していないからなのか
どういう意味なのかわからないです。
>>677
取得できました。ありがとうございます。aタグから
soup.find_all(class_="bcs_l").find("a").get("href")で取得できないのは
soup.select(".bcs_l > a")と何が違うのでしょうか?
>>679
ご指摘ありがとうございます。気をつけます。 >>680
find_all(class_="bcs_l")した各要素について個々にそのaタグからhrefを取得しないとだめかな。 超初心者です。教えてください。
VSCodeの方が使いやすいと見たので、インストール後に動作確認の為にTkinterでウィンドウを表示させるだけのソースを実行してみたのですが、表示されません。("HelloWorld"は問題なく動作します。)
同ソースをPythonのIDLEで実行すると問題なく表示されるのですが、VSCodeで実行できるようにするにはどうすればよいのでしょうか?
確認方法を教えていただけませんか? 682です。
自己解決しました。
テストだったのでTkinter.pyと適当にファイル名をつけていたのですが、違う名前にすると動きました。 >>680
find_all は単数形、つまり単なる要素か、
または複数形、つまり配列のどちらを返すのか?
そういうのを使う関数の文書で調べる
単数形なら、そのまま、要素.get("href")
で取得できるけど
配列なら、配列[インデックス].get("href")
とインデックスで、どの要素か指定しないとダメ!
つまり各要素は、配列内に複数あるから tkinterでmultiprocessing使うとき
if__name__=='_main_'しないとトップレベルがもう一枚出てくるんですが、ガイドの説明がわかりません
新たな Python インタプリタによるメインモジュールのインポートが、意図しない副作用 (新たなプロセスを開始する等) を起こさずできるようにしてください
代わりに、次のように if __name__ == '__main__': を使用してプログラムの "エントリポイント" を保護すべきです
これは新たに生成された Python インタープリターがそのモジュールを安全にインポートして、モジュールの foo() 関数を実行します。
新たなプロセスが開始されてしまってトップレベルの二枚目が出てきてるのでしょうが、エントリポイントとか、もう少しわかりやすく教えていただけませぬか? spyder4使用中に
カーソルが変なのになっちゃったんですが、どうやって直せばいいでしょうか?
通常はアルファベットなどの間に縦線点滅するんですが、ある特定のファイルの時だけアルファベット1文字を塗りつぶすように白く点滅してしまい
何かを入力するとカーソル合わせてるアルファベットが置き換わってしまいます。
なんか説明下手ですいません。 >>687
ありがとうございます。
解決しました! >>685
Ruby でも使う、典型的なイディオム。
以下を、main.rb ファイルに書いて、ruby main.rb
と実行すると、$0 には、起動時の引数に渡した、main.rb が入ってくる
puts $0 # main.rb
if __FILE__ == $0
puts "メイン処理"
end
一方、__FILE__ は、現在評価中のファイル名だから、
これらが一致する時は、起動時の引数に渡したファイルが評価中なので、メイン処理である
一方、このファイルが、require, load などで、
他のファイルから、モジュールとして呼ばれた時は、
これらが一致しないので、メイン処理の部分を通らない
このように、そのファイルをメイン処理と、モジュールとして呼ばれた場合を、書き分ける方法である 「.zfill」みたいな、オブジェクトの後にドットをつけて処理を行うものについて質問です
・あれの呼び名は「メソッド」で合ってますか?
・あれを自作したいんですが、どうやればいいんでしょうか? 勉強の方向性について質問です
pythonで実験データを解析出来るようになりたく、また可能であれば機械学習まで勉強したいのですが
pythonの基本をやってからそのままnumpyとpandaの勉強をする、という流れで大丈夫ですか?
教材はオライリーのデータ分析入門を使っています
加えてこれを勉強した上で機械学習を勉強するのにおすすめの教材(webでも本でも)はありますか?
また勉強の息抜きにtkinterでゲームを作って遊んでいるのですが、データ分析においてtkinterは使われるものなんでしょうか?
このままtkinterを勉強するべきか悩んでいます
自分の作ったプログラムを使いやすくするためにguiでソフトを作るって感じの認識で合ってますか? >>692
今は3日目くらいでとりあえずデータのインポート、書き出しを勉強してます
panda、numpyの関数は細かい所までやるとキツいので飛ばし飛ばし勉強してます >>692
連投ごめんなさい
誤字してました
pandasですね >>691
・メソッドで合っている
(個人的には組み込み型への組み込みメソッドと勝手に読んでいる)
・setattrを使えば自作できるんじゃね? >>697
numpy
pandas
tkinter
どれも定番
問題ない
それより判らないからって飛ばすな >>695
回答ありがとうございます
setattrは自作クラスにクラス内変数を追加する命令っぽいですね
自分でも調べたところ、Pythonでは組み込み型にメソッドは追加できないそうです
まぁ、関数だと見た目が悪いからメソッドを使いたかっただけなんで、
この件はもういいやってことにしときます >>697
built-inじゃないクラスは簡単に拡張可能
https://ideone.com/f5IdkS
built-inは通常のやり方では拡張できないけど以下のライブラリを使えば簡単にできるよ
https://github.com/clarete/forbiddenfruit 入門書を一通り終えた初学者です。
Djangoを学びたいと思うんですが、おすすめの書籍またはサイトなどありますでしょうか? >>696
ndarrayの後半辺りがキツくて軽く飛ばしちゃいました
実際使ってみた方が覚えるかなと思ってわからなくなったら戻って、って感じでやってますが基礎しっかり固めてからの方が良いですかね? >>681
>>684
詳しくありがとうございます。単数形と複数形のことを理解できました。 >>701
行列の作り方とか掛け算とか逆行列、転置、縦横につなげるとかのやり方がわかってれば問題ないよ
大学教養レベルの線形代数がわかってれば、だけど
そもそも線形代数がわかってないとかだとなにするにしても辛いかも bs4で一番上の親(BeautefulSoupオブジェクトのひとつ下)のクラスを
子要素から取得(判定でも可)したいんですけど・・・全然上手くいかない!
何卒お助け下さい
child.parent.parent.select('.test')←エラー
child.parent.parent['class']←エラー
child.parent.parent.find(class_='test')←エラー
これは呪いですか >>699
Python Django 超入門、掌田津耶乃、2018
主要言語・フレームワーク・ゲームエンジンで、掌田! >>704
それだけじゃ分からない
構造化されたHTML でもあれば、Ruby でも出来るけど >>704
https://gist.github.com/jnakanojp/559bbfab6e7d778c8cb8f54a4753e6d9
で試してみたけどその方法で基本的には問題ない
parentし続けると最終的にはNoneになって、その前にBeatifulSoupオブジェクトになるから、
bso = child
while True:
bso_candidate = bso.parent
if type(bso_candidate) is None:
break
bso = bso_candidate
とかしたらbsoにはBeautifulSoupオブジェクトが入るはずなので、そのひとつ下のタグをあれこれするというのが確実にできる
まずは、type(child.parent.parent)とか、child.parent.parent.nameとかで何のタグまたはオブジェクトを触っているのか確認したほうが良いよ コードのインデントが間違ってた。
bso = child
while True:
bso_candidate = bso.parent
if type(bso_candidate) is None:
break
bso = bso_candidate
だね。 いや、707で合ってた。708は間違いなので無視してください。 つか、最終的に一番上のクラス探すなら、子要素からたどる意味が分からん。
body > [class] でいいんじゃ? >>704
.parentsで辿れば?
[ (p.name, p.get('class')) for p in foo.parents]
DOMツリーの上方向に検索したいならfind_parentやfind_parents djangoモデルとビューのファイル分けがたるいから嫌い >>692
>このままtkinterを勉強するべきか
直接機械学習とは関係ないけど
GUIが使えた方が何かと便利でしょ?
他のGUIライブラリが使えるならともかく
ひとつ位覚えておくことをオススメしたい >>715
pythonでGUIとかギャグだからC#にしとけ 簡単な自作ツール作る時には便利>tkinter
ただ本格的なツールやプロジェクトとしてやるなら別言語レベルで決めるかな
Pythonって外部ライブラリでもGUIってあんまり良いの無いよね Guiを使うとコードが冗長になるからなあ
Pythonの美しさ・シンプルさが失われてしまう pythonはpocでサクッと分析するのに使う程度でモデルが決まったらコンパイル言語でFIXでしょ 普通にPythonを業務で本番運用してるが
PythonでGUIはギャグは同意 4年やってるが今日初めて制御構造でスコープ作られないことを知ったわw
独学のこわいところ 個人で使うだけだしライブラリ便利だからばりばりGUIやってるけど1つ困ってる
これエラーで止まるんだけど無視できない?エラー出る原因は分かってるから使い方で回避してるんだけど
def aaa(self, pos):
try:
win32api.SetCursorPos(pos) ←ここで止まる
except:
pass GUIでSetCursorPosって使うモンなの? win32apiとかいう奴の問題でしょ
例外が発生するまでの間に何か破壊的な挙動でもしてるんじゃない
passじゃなくて例外発生前の状態に復元する処理とか初期化書けば動くでしょ知らんけど そうかpython本体が落ちるってことか?
ならその分かってる原因の場合はモジュール走らせないことだな
setcursorposってことはposが0なら死ぬとかじゃないの知らんけど
やるべきことはtryで捕まえるではなくifでモジュールコールの回避 モニター切り替え時とかRDP接続時とかとタイミング重なったときだけなんで
pos入ってるけどset先を見失ってるのかな >>727
エラーコードを貼った方が良いのと、>>726が言う通り、事前にOpenInputDesktop()を使ってSetCursorPos()が使えるかどうか確認した方が良さげ みなさまありがとうございました
find_parentでいけました
ドキュメント読んだつもりがこのメソッド見逃してました >>722
ホラーだな
他言語ではまずあり得ないけど
スコープ周りはPythonの一番イケてないところだから
公式チュートリアル含め下手な入門書ではきちんと解説されてない
逆にlist comprehensionやlamdaなんかを含めて
スコープ周りをまとめてわかりやすく解説できてる本は良書 > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw >>722
オライリーの初めてのPythonなんかはかなりわかりやすい。 tkinterやってていつも悩むんだけど、stringをコードのあちらこちらに使うよね。主に説明文とかラベルとかで
これ全部変数化したほうがいいのか、一回しか書かないとこは直書きでいいのかとか、どう処理するのがいいんだろう?
一回全部別クラスにまとめてやろうかと思ったんだけど、冗長な気がして途中でやめてしまった funcs = (func1(), func2())
out = reduce(lambda f, g: lambda *args, **kwargs: g(f(*args, **kwargs)), funcs)
これは何をしてるのですか?意味が分かりません。 漏れは、Ruby で、
noop: true, verbose: true を指定して、
すべての引数を親クラスへ丸投げする、関数を作ったけど、それと同じだろ
def f( *args, **options )
super( *args, **options, noop: true, verbose: true )
end >>736
funcsに入れた関数を順番に適用する合成関数outを生成している
funcs = (func1, func2) の間違いじゃなければfunc1やfunc2が関数を返す関数 >>734
プログラムの規模に応じて使い分けるのがいいよ
規模が小さい場合は直書きするし、規模が大きい場合は別ファイルとしてまとめる
別ファイルにまとめるメリットは
・文字コードをUTF-8からSJISに変換したい場合に、別ファイルだけ変換すれば良い
・別ファイルだけ翻訳専門部隊に外注して多言語化しやすい
デメリットは工数が増えることかな 書籍にtensorflowはwin対応してないって書いてあったんですがマジですか?そんなことあるんですか? それはちょっと前の話で今は使えるけど、それまでは長いこと使えなかった
開発元のGoogleでは社内でWindowsの使用が禁止されているのは有名な話で、Windowsなんてそもそも相手にしてない >>744
なるほど、そういう事情があったんですね、、
ありがとうございます! >>744
調べても10年前の記事しか出て来ないんだが
今もそうなの? 営業はともかく、少なくともGoogleのエンジニアやデータサイエンティストは
禁止されていようがいまいがWindowsは誰も使ってないだろうね >>734
一般的に複雑な処理になるに応じて
別クラスなりファイルなりに切り出す
その目安はもし頻繁に変更するようなら
切り出した方が冗長でも修正が早くなる >>744
それじゃ商売にならんだろ
クライアントマシンの98%はWinなんだぜ まあchromeやgmailまわりでwindowsに対してめちゃくちゃ文句言ってたのは知ってる。
使ってないは言い過ぎだろうけれど、中の人達は好きじゃないだろうね。 ローカルで実行する機械学習なんて高が知れているから重要視してないってのもある 初心者です。
python であるWebサイトのスクレイピングをしたいと思います。
そのサイトはアクセスする際に、
・クライアント証明(pfxファイル)
・その証明書のパスワード
・ユーザー名
・パスワード
が必要なのですが、requests で読み込むことができるでしょうか。
調べながら2〜3日やっているのですが、わけがわからなくなってきました・・・・ 2行目の証明書のパスワードは
ローカルな話だから
ローカルでパスワード無しのを造れば良い
他はrequestsでOK >>753
ありがとうございます。
> 2行目の証明書のパスワードは
> ローカルな話だから
> ローカルでパスワード無しのを造れば良い
すいません、理解が足りず一点質問させてください。
対象のサイトをブラウザで閲覧するとき、初回のアクセス時に 証明書(pfxファイル)を
指定してブラウザに読み込ませる(このときパスワードがいる)必要があったのですが、
・「requests でアクセスするときはこのパスワードが不要」
・または、「パスワードが不要な証明書を作り直せ良い」
のどちらになるでしょうか。
教えていただけると助かります。 >>749
デスクトップ・アプリケーションならWindows対応考えるだろうけど
ブラウザやライブラリレベルだとUnix/Linuxで動くことを前提に開発するのは当然で
Windowsの特殊な事情に対応するのはまた別のレイヤーの話だよね >>754
例えばIEとかEdgeとかなら
pfxをエクスポートするときに
パスワード有無の設定が選べる >>756
ありがとうございます。
了解しました。 >>756
パスワード無しpfxを直接requestsに渡せるの? ディープラーニングってどれくらいのマシンパワーが必要なんでしょうか?
自宅pcでやるのは無理ですか?アナコンダなど 目的とその学習量によるが
実用化しようとすると
計算資源が不足する場合はよく起こる 自分で1から全部作るなら問題ない
ソフトウェアというのは、その時点で開発者の想定したハードウェアにおいて人間から見て許容可能な時間で処理を完了するように作られるものだ
で、ディープラーニングというのは普通クラウドで超高性能のマシンを多数並べて動かすのが普通であり、
出来合いのツールやフレームワークはそういう環境を想定して作られている
すなわち、それを手元のPCで動かそうとすると許容できないほど遅くなる可能性が高いってこと
性能の技術的限界というよりは開発者の想定の問題なんだよ 実行させてる間に他の事したいんだったら
もう一台PCある方がマシ
既に一台だけ持っててテストだけしたいならそれでやって
速度足りないと思ったら新規に買うなり
AzureとかVPSとか適当に外部のCPU/GPUの力を借りる >>759
MNIST,CIFAR10ぐらいのチュートリアルレベルならノートPCでも行ける >>759
これ自分も気になる
ローカルでHello Worldレベルの機械学習の勉強をやってみたい
クラウドのサービスとか使わずにやってみたい >>763
アイドルの水着を脱がせたいのですが、これはどうでしょうか?
GTX10502GBはありますです >>764
一か月は見積もれ
>>765
はなしにならん ただ一人の水着脱がせる程度でも?
じゃあcolab使うしかないの? ひとりという単位で考えても仕様がない
学習量は識別精度のラインで決まる
画像認識なら判別できるかどうかとか >>767
学習完了したモデルがあって脱がせるだけなら十分だよ
学習からだったら厳しい 厳しいというか
エポックメイキングクラスの頭の良さじゃないと無理ゲーw こんな場所で聞く前にやってみればいい
メモリ不足になるか永遠に終わらないなら出来ないって事だから >>765
そんなしょぼいリソースで脱がせられるわけ無いだろ。
肘の高さまで積めば脱ぐぞ。 コラは脳内でやりなさいな
自作コラがデジタル遺産になっちゃった時のことを想像してみなよ www >>774
アナログエログッズ遺産wの話はよくきくなー 何にでもパレオを着せちゃうアプリなりWebサなり作ったらおもしろいかなぁ・・・? (´n`) モダンなpythonのweb開発ってこんなんで合ってるか?
・fastapi
・uvicorn
・poetry
もっと強そうなのやってるってやついたら教えて >>791
ない
Integerの0と1で代用
てかデータベース板聞く内容 >>792
やっぱそうか…でもSQLalchemyかましたら普通にTrue Falseでいける? >>793
SQLAlchemyを使う前提ならSQLiteの型はあまり考慮しなくていい
Python側でTrue/Falseを使えばデータベース側はバックエンドに応じて適切に処置される >>794
サンクス
そうなんすね、こういうときにORMが力を発揮するんやね、今までなんのためにあるかようわからんかったけど ワードプレス案件とかあったとしても、コミュ力無いと無理だな SQL の文法に論理的 AND とか OR はあるのに
bit の AND / OR が無いのは不思議 テーブルにビットフラグ入れる馬鹿を喜ばせるような機能を入れてはならない すみません。質問させていただきます。遷移して100件ほど取得後outputリストに入れて、pandasで確認してみたところ各100行ほどのデータが1つしか表示されず
item_urls = []
output = []
for _ in range(1):
res = get_html(url)
soup = bs(res.content, "html.parser")
item_urls += ["https://www.adkeiolm.com" +item.find("a").get("href")for item in items]
url = "https://www.adkeiolmw.com" + soup.find(class_="pager-next kjduaksi-as").find("a").get("href")
print(url)
time.sleep(5)
output.append({
"title":item.find(class_="items-box-name sevne-3").text,
"price":item.find(class_="items-box-price sevne-4").text,
"url": "https://www..com" + item.find("a").get("href"),
"pictuers":item.find("img").get("kiad-src")
})
下のこの内包表記を使ったコードでは各100件ほど取得できているのですがタイトル1つに100件が入ってしまっていて100行にしたいのですが、1行に全て入ってしまっています。このデータを1つずつにするにはどうすれば良いのでしょうか?
output.append({
"title":[(item.find(class_="items-box-name sevne-3").text)for item in items],
"price":[(item.find(class_="items-box-price sevne-4").text)for item in items],
"url" :["https://www.adkeiolm.com" +item.find("a").get("href")for item in items],
"pictuers":[item.find("img").get("kiad-src")for item in items]
})
内包表記の使い方が間違っていたり、質問が分かりにくいと思いますが教えていただければ幸いです。宜しくお願い致します。 >>802
内包表記が間違ってるんじゃなくてpandasのDataFrameへの突っ込み方が間違ってる
やるならこうかな
titles = []
prices = []
urls = []
pictures = []
と列に対応するリストを作った上で
titles.append(…)
prices.append(…)
urls.append(…)
pictures.append(…)
とそれぞれリストに追加して
df.DataFrame({
‘title’: titles,
‘price’: prices,
‘url’: urls,
‘picture’: pictures,
})
とやる
遅くていいならdf.append()やdf.assign()を使えばできるけど、上に示した方法のが速い ミスった
分かってると思うけど df.DataFrame は間違いで正しくは pd.DataFrame >>803
別々にすることが出来ました。別々になったものを合わせて表示することもできるのでしょうか?
列ではなく行の表示にかわっていたり分からないことが多いので
pandasのこともっと調べてみようと思います。助かりました。ありがとうございます。 pandasは可読性悪いし、スケールもしないってことはもっと知られてもよいと思うよ。
便利だとは思うけど。 たまにスクレイピングの質問の後に
馬鹿には無理の書き込みがあるけど
複雑なものを作るわけでもないスクレイピングやpandasなんてやってれば
馬鹿でもできるようになるだろ。 ffmpeg.exeを実行ファイルと別のフォルダに置きたい
pyinstallでexe化して人に渡すプログラムなんだけど、実行ファイル内でffmpeg.exeはここです というように指定できないのでしょうか ここにありますって別フォルダを指定すればいいのではないでしょうか Pythonで桁を揃えて出力したいのですが
C言語の(%桁数)みたいなのってありますか
C
printf("%3d",val);
Python docs.python.org/ja/3/library/string.html#formatspec >>> val = 13.456
>>> f'{13.456:3.2f}'
'13.46'
>>> val = 13
>>> f'{13:3d}'
' 13' >>816
せっかくvalに入れたのに何故使わない・・・ >>816 >>815
出来ました、ありがとうございます >>807
スケールもしないとは具体的にどういうことをいうのか教えてください。 >>811
third party 製のライブラリを置くフォルダを作れば?
むしろ、実行ファイルと同じフォルダへ置くと、
もし、そのフォルダへパスを通す客がいた場合に、
ffmpeg.exe もグローバルに見つかってしまうから、
客が元から、ffmpeg.exeのフォルダへパスを通していた場合に、
パスの順序によっては、実行されるffmpeg.exeのバージョンが変わってしまう
Ruby ならコマンドプロンプトで、where ruby
と入力すると、C:\Ruby25-x64\bin\ruby.exe
このbin には、rspec など、多くのグローバルなコマンドが置いてある
where rspec
C:\Ruby25-x64\bin\rspec
C:\Ruby25-x64\bin\rspec.bat
一方、include, lib などは、そのパスに含まれないフォルダにある。
C:\Ruby25-x64\include
C:\Ruby25-x64\lib 質問させてください。環境はVSCode、python3.8です。
はじめての Django アプリ作成、その 3¶
https://docs.djangoproject.com/ja/3.0/intro/tutorial03/
をやっているのですが、途中で出てくる
latest_question_list = Question.objects.order_by('-pub_date')[:5]
という部分の「objects」とは何なのでしょうか?
チュートリアルには説明がなく、定義へ移動も使えないため、調査が行き詰っています。
どうやらDB関連であることは分かったのですが、
詳しい説明があるページなどはないでしょうか? >>820
とりあえず生ファイルで1GB ~ 10GBの容量を df で読み込んでみればわかる。 >>822
チュートリアルその2を飛ばしたのか?
まぁその気持ちはわかる スケールさせたい場合はpandasよりもdaskのがいいらしい
大規模処理はPySparkしか使ったことないので詳細は分からない
速度が速いbaexというのもあるらしいが、こちらも未だ未検証
まだまだ勉強する事が多い testString = "testabctesttestaaatest"
みたいな文字列があった場合、末尾のtestだけ削除して
testString = "testabctesttestaaa"
に置き換えるにはどうしたら良いですか? >>830
testString = testString[0:-4] >>830
testString = re.sub(r'test$', '', testString) tkinterで開始ボタンと停止ボタンを作り、
開始ボタン押下でスレッドで処理開始、停止ボタン押下でスレッドを終了ということをやりたいです
ググった結果、グローバル変数でフラグ管理をしてスレッドを終了させるという手法を見つけたのですが
while True:
処理A
処理B
処理C
...
こういった感じでスレッドが長めのwhileループをしており、
フラグ判定でスレッドを終了させるにはそこら中に判定文を仕込む必要がありそうであまりスマートに見えません
初のプログラム言語で何か見落としていそうなのですが、良い方法はないでしょうか 最後に終了フラグ立ってるかどうかだけ調べる処理書いとけばいいんじゃねーの 途中で安定的に止めるには、途中でフラグ見るしかなかろ。シグナル送るにしても、結局チェック要るんだから
あるいは
def call_func(call):
__check stop_flg()
__if call=1:
____処理内容関数1()
__elif call=2:
____処理内容関数2()
みたいな
俺は途中で止めるときはkillしたあとプロセスとqueue空にする過激派だからmultiprocess使う >>834
> 初のプログラム言語で何か見落としていそうなのですが、良い方法はないでしょうか
ないです
現状では、優先度 (priority)やスレッドグループがなく、スレッドの破壊 (destroy)、中断 (stop)、一時停止 (suspend)、復帰 (resume)、割り込み (interrupt) は行えません。
https://docs.python.org/ja/3/library/threading.html#threading.TIMEOUT_MAX subprocessって以前は破壊コマンドあったんだっけ?
いまはos.killするしかないのか AAA,BBB,CCC
1,テスト,テスト
のようなウェブ上にある CSV を
csvfile = urllib.request.urlopen('<url>').read().decode('utf_8_sig')
reader = csv.reader(csvfile)
for row in reader:
print(row)
みたいな感じで読むと、1文字ずつ取り出されてしまうようなんですが、
どういったところを疑えばよさそうですか?
CSV が1文字ずつ改行されているということもないですし、
ネットで探してもこんなことで困っているようなケースは見当たらないようですが… >>839
csvfileって書いてるところがstrだからでしょ
for row in csv.reader(csv_string.splitlines()):
みたいにすればいいと思うよ >>840-841
いけました!!!ありがとうございます!!!!! >>839
csv.reader()の引数はイテレータである必要があり__next__()を呼び出して処理する
csvfileは文字列で__next__()を呼び出すと1文字ずつ返すからそうなってしまう
多分やりたいのは1行ずつ処理してほしいんだろうから
urllib.request.urlopen('<url>').read().decode('utf_8_sig').splitlines()
とかで行のリストにしてみたらいいかと # なんとなくread()するのがもったいないかんじもするので
with urllib.request.urlopen('<url>') as f: # byte stream
__tf = io.TextIOWrapper(f, newline='', encoding='utf-8')
__reader = csv.reader(tf) # text stream
__for row in reader:
____print(row) なるほど、csv.reader(open(ファイル名,"r"))での動作はそういうことか。 Ruby では、CSV.foreach で、1行ずつ処理できる
require 'csv'
file_path = "input.csv"
CSV.foreach( file_path ) do |row| # 1行ずつ処理
puts "#{ row[ 0 ] } : #{ row[ 1 ] }"
end
出力
あ : いう
a : bc >>846
844のコードで何が書いてあるかさえ理解できないの?
ほんとにrubyしかわからないんだな。毎日毎日別言語のスレに見当違いのrubyのコード書いて、無職でrubyでちょっとしたコードが書けることが唯一の誇りなのかな…? でもなあ>>843みたいに既に回答されてる内容をさも意味があるかのようにただ繰り返すだけのやつよりはまだいいと思うぞ >>848
リロードしてなくて被っただけ
アンカー見たらわかると思うんだが
>>847
ルビ厨の相手するなよ… Ruby、なら、こんな、感じ
require 'おっぱい'
oppai = 'OPPAI'
OPPAI.foreach(OPPAI)
put end
出力
おっぱい!!!!!!!!!
!!!!
!!!!!!!おっぱい!!!おっぱい!!!!おっぱい!!!!!! 7時間もリロードせずにレス書くやつw
そして>>849と>>847が同一人物という落ち > そして>>849と>>847が同一人物という落ち
自演認定厨乙 プログラミング、Pythonとは?
ってぐらいの超初心者です。
目標は競馬のデータ分析です。
はじめの一歩としてオススメの
参考本はありますか? とりあえず作りたいものExcelで完成させるといい >>854
俺もプログラミングはじめてだったんで、くじら飛行机のでpythonというかプログラミング自体を習い、次にオライリーの魚の本でAIを習い、まとめに競馬AI作って上手いこといきました
ちなみに俺は競馬やらないんだけど、分析には問題なかったです。専門用語調べたりはしましたが >>857
すごい
自分もくじら本読んだけど全然理解が追いつかない >>854
マジレスしてやると、微分積分、線形代数、統計2級以上はベース知識として必要だが、既にクリアしてるならゼロから始めるDeeplearning嫁 >>854
競馬が好きなんだろうけど
天引き率多いから99パー勝てないよ
もし本気で金を稼ぎたいなら
株価分析の方が良い
そしてデータ分析なら
Excel VBAから始めるのも良い
VBAは入門書が多いし易しいし
最初からExcelのGUIがついてるから
超初心者にはこのふたつが重要な点 競馬と株で株勧めるやつは素人か嫌がらせ
これ豆知識ネ そもそも皆さんが言ってる事が理解出来てないぐらいです
競馬は趣味程度で稼ぎたいとまでは考えてないが
プログラミングとデータ分析を覚えながら
趣味に繋がれば…
目的、目標がないと挫折しそうなので。
そんな奴でも理解出来る本ってありますかね?? 聞く前にやってみたら?
本なんて読んでみて合わなかったら次いけばいいよ
今ならkimdleunlimitedが三ヶ月300円今日までだし色いろなpython本ある。ふりがなpythonプログラミングとか言う本もあった読んでないけど簡単そう >>860
競馬は全部の馬券の組み合わせを買っても絶対勝てないように出来てるんですよね >>864
いや
違う
出来そこないのウマ3頭を省いて15頭の総当たりで勝てるが、
難癖付けられて税務署にもってかれる
要するに、競馬の必勝法は編み出されたが、それを使うと税金的に逮捕される
だから、競馬は勝っちゃいけないゲームだということが周知になった
もはや男は騙せないから、女子供向けのCM打ってる なるほど!
判りやすい説明thx
前それで逮捕されてた人って無罪になったん?収監されたん?
経費にならなかった? >>864
株はプラスサムの場合があるからね
インデックス持ってるだけで勝つ時 続報も詳細もあまり詳しくはない
しかし、競馬で勝ってはいけない、ということだけは理解した >>868
最近のインデックスは、皆インデックスばかり買うものだから、採用銘柄がおしなべて割高になっていると思います
インデックス売買に株式投資本来の価格調整能力(良いものの値が上がり、悪いものは下がる)はない
インデックス買いはそろそろやめておいたほうがいいでしょう 競馬の方が勝てるっていうのは詐欺
競馬はJRAが控除で天引きするから
長期ではその還元率に収束していく
株は売らなくても持ってるだけで
配当とか株主優待もあるんだから
長期のプラス収益が実現しやすい
ただし株だけで生活するには
相当の投資資金が必要になる >>870
プラスサムになる場合を説明しただけ
自分でポートフォリオを組んだ方が良い 競艇なんかも言い掛かりつけられたら裁判で数年ロスするからな。戦場は株か暗号資産が良い。為替はダメだ。相場との戦いではなく、業者との戦いになるからな。攻略しても凍結が待っている。 株で重要なのは異常値分析だろう。
引き際間違えなきゃ儲かるようになってる。
ただ今回みたいなことが何年か周期であるからそれを回避できるかどうかが重要。 競馬で稼いでいた人は、無罪になった。
事業としてやっていたから、はずれ馬券も経費になった!
趣味では経費にならないけど
パチンコ・競馬は、還元率が70〜80% と低いから、繰り返しやると減っていく。
一方、株式は手数料も少ない
明地文男の3点チャージ投資法なんか、暴落時だけに底値を買うから、100% 近い勝率。
今回の暴落でも、底値で拾って、すぐ売る
ただし、多くの底値が同じ日にちになってしまうのと、
数年に1回しか、暴落が起こらない >>877
この裁判のミソはな、他の奴が真似してシストレしたとしても外れ馬券が経費と認められる保障はないってところだ。
いちゃもんつけられたら裁判で数年ロスするからな。
ケチがついた戦場選ぶ奴はセンスないよ。 競馬、宝くじ、株や為替、仮想通貨
確実に儲かるのは胴元なんだよな 株は底値で買って儲けるだけじゃなくて
高値で売って儲けるのもあり
安定してるときより細かく上下してるときの方が儲かる >>880
1番儲かるのは機械学習を取り入れたいって奴にツールを作って提供してやる俺たちさ >>881
本格的にボラティリティーでも儲ける用意してるヘッジファンドに個人が勝てるわけねーだろ。
>>882
正解だが、それネズミ講で儲けてるクズと変わらんから。 >>862
自分も始めたばっかりなのでそれ程多くの情報を持ってないですが
大量にデータを扱う際に困るのは表、グラフの作成とかデータの入出力だと思うので、その辺の説明がある本を探してみては
例えば
初心者向けPythonデータ分析入門: Numpy/Pandas/Matplotlib/Scikit-learn/Keras対応 (神草出版)
の例を真似て見るとか
あと基本的な文法は自分はドットインストールの講座を見てます
Pythonの実行環境はAnacondaを導入してSpyderを使用するのが煩雑過ぎず、コマンドラインアレルギーも起こしにくく良いんじゃないかと思います 絶対儲かるって言ってるネズミ講と、自分の分析を補助するツールとが同じ訳ないでしょ ネズミ講のばあい:どうあっても、勧誘ノルマが地球の全人口を超えるのが、割と早い件
株取引のばあい:取引に参加してる連中のうち、最多数派が採用した瞬間、そいつら全員ドボン。
けこうゆうよある。 pythonではないが、こういうのもある
Rubyではじめるシステムトレード (現代の錬金術師シリーズ) (日本語) 単行本(ソフトカバー) – 2014/5/20 明地文男の3点チャージ投資法は、たぶん何千回もやって、99% は勝ってる。
底値で勝って、翌日に、5% 上で売る
欠点は、多くの銘柄の底値が同じ日にちになってしまうのと、
数年に1回しか、暴落が起こらない
今回みたいに、30% 暴落・調整するのが、数年に1回しか起こらないから。
リーマンの時にみたいに、50%暴落するのは、数十年に1回 >>883
>>886
ネズミ講と株式市場は全然違うぞ!
前者は違法だが後者は合法
それに株の場合はゼロサムじゃなくて
プラスサムも(マイナスサムも)ありうる >>877
>>890
暴落の底買いは必勝法じゃない
テールリスクを無視してるから >>860
いろいろ調べてくと
競馬のデータ分析は
Excelでも充分だな。
ただExcelも理解してないので
ハードルが高そう。
やっぱり無理かな… 競馬は勝てますよ
もちろん家建てるのは無理でも、競馬を楽しみながら月数十万勝つのは可能。
方法はノミ屋と知り合いになる。
ノミ屋の控除率は90%だから分析次第では楽に勝てる
銀行口座通さなければ税金も取られないし >>898
反社の話までしてスレ汚し続けるなよ
頭悪そうだな 割り算の切り上げについて0--4//3という記述を見たのですが、この"--"はなんでしょうか?
切り上げなので、おそらく-(-4 // 3)を短縮した書き方だとは思うのですが。
関数形式の標準演算子
https://docs.python.org/ja/3/library/operator.html
にあるかと思ったのですが、見つかりません…。 下らなくはない。
JavaやC(たぶんC#も)をやってる人は要注意。
>>> 0--4//3
2
>>> 4//3
1
>>> -4//3
-2
>>> -(4//3)
-1 >>903
なるほどなっとく!
たしかにくだらなくないぞ 単に、-・// の演算子の優先順位だろ
-4//3
-2
0-(-4//3)
2
-(-4//3)
2 --4//3 だと 1 なのな。
-(-(4//3)) って解釈なのかな?面白い。 >>906
>-(-(4//3)) って解釈なのかな?面白い。
(―4)//3って解釈だぞ 0--4//3 だと 1
0-(-(4//3))
--4//3 だと 1
(―4)//3
ですか? >>907
(-(-(4)))//3 ってことね。
そりゃそうだ。ありがと。 >>908
>0--4//3 だと 1
>0-(-(4//3))
0-((-4)//3)
優先順位
1. 単項演算子のマイナス
2. 二項演算子のfloor division
3. 二項演算子のマイナス
https://docs.python.org/ja/3/reference/expressions.html#operator-precedence まとめ
0-(-4//3) だと 2
0-((-4)//3)
0--4//3 だと 1
0-((-4)//3)
--4//3 だと 1
(―4)//3
あれ? >>912
いつまで続けるつもりか分からないけど2つ目間違ってるよ
--4//3は単項演算子のマイナスが2つ
0--4//3は最初のマイナスは二項演算子、次のマイナスは単項演算子
つまり
0--4//3 = (0) - ((-4)//3) = 0 - (-2) = -2 あかん、ミスったw
つまり
0--4//3 = (0) - ((-4)//3) = 0 - (-2) = 2 予想以上に盛り上がる質問だったようで、驚いております。
皆さん、ありがとうございました。
そもそもmath.ceil使えという話ではありますが…。
>>911
リファレンスありがとうございます。 >>916
>そもそもmath.ceil使えという
リファレンスとか読んで結論が↑ならヤヴァイぞおまい C系のint割り算とは違う(-4 / 3 = -1)ってことを言いたかったんだが、
>>905が優先順位とか言い出したからおかしなことになってるだけ。 割り算の切り上げにmath.ceil(4/3)じゃなく
0--4//3って書いてるコードがあってこの--は何?
ってなったのが>>901
math.ceil使えって結論で別におかしくないし
--が何かを理解するには演算子の優先順位を理解する必要があるから
>>905の話も別におかしくない pythonを実行ファイル形式にしたいのですが、
pyinstalerって使い物になります?
なんかネット見てると遅いとか実行ファイルに変換できないとかいろいろ書かれているんですが・・・。 実行ファイル化は危険な闇ツール
自己責任でどうぞ
他人に助けを求めないように 0--4//3
これは単なるクイズでしょ。
実際に、こういうコードがあれば共同開発できない
-- が、デクリメント・単項・2項など、どういう演算子か分からない ここに飛ばされたんですが、いろいろ試してみましたが、
<class 'tuple'>: (1, 1, 320, 320) この形の配列を
<class 'tuple'>: (320, 320, 1) にするやり方が分かりません。
forループで要素を入れ替えると、約1秒もかかります。 >>922
確かにパッと見て分かりにくいから仕事で使うべきではない表記だけど、基本的な演算子しか使われてないのに読もうとしても構文的にちゃんと解釈できないのは仕事をする上ではまずいと思うぞ。 >>923
自己解決しました
np.array(l[0]).transpose(1,2,0) >>925
numpy使えるなら普通にreshapeすればよくない?
array = np.array(np.arange(320*320)).reshape([1,1,320,320])
array.shape
#=> (1, 1, 320, 320)
array2 = array.reshape([320,320,1])
array2.shape
#=> (320, 320, 1) >>924
コード解析せざるを得ない状況なら調べるけど、普通はレビューで弾いて書き直させる
トリッキーなコードをいちいち調べるほど暇じゃない、仕事ならなおさら >>920
1. Cython (Cpython ではない方)
2. C から直接 python 実行
3. 全部書き直し >>920
Pythonは自分で運用するものだ
他人に配るアプリを作ってはいけない >>926
transposeは軸を交換していてreshapeは配列の形を変えているだけなので結果は異なるよ
例えば width=320, height=320, depth=1 の場合
a = np.arange(320*320).reshape(depth, width, height)
で (depth, width, height) の並びになるけど、これを
a.transepose(1,2,0)
すると(width, height, depth)の並びになる
a.reshape(width, height, depth)
とは当然結果が異なる
質問者の意図が曖昧だったね CSVからDBのスキーマ作ってくれるpythonのツールないですか? Djangoもモデルクラスの定義からCREATE TABLEのSQL文作ってくれなかったっけ。 >>936
すれば?
ここは雑談スレじゃないし。構ってちゃんなのかな?
具体的なPythonの質問に落とし込んでいれば質問にも答えてもらえると思うよ >>933
横にクソ長いCSVからORMのクラスをつくりたいんですよ
>>932
pandas
ってマイグレーションできるん? そのフィールド名集めてDDLにするだけじゃね?
型まで推定してほしいってことかな。 美人女優モデルのクラスを定義するだけで
美人女優を輩出してくれるこのシステムまじうめぇwww
美女さんが毎夜楽しませてくれるんよwwwwww append({‘aaaa’:3,’aaa’:2})
って感じのコードがあったんだけど
リスト型の中に辞書方を入れることってできるの? >>938
Ruby on Rails の、ソースコードをコピーすれば?
タスクランナーのrake か何かで、作っているのだろう >>938
やりたいことによるけど、pandasで多分できる
OR mapperしたいならSQLAlchemyだけどCSVのテーブルをパースして取り出すだけならpandasでいい
横に長いカラムっていくつくらい?1000カラムくらいならpandasでいい 安倍政権も、民主党政権よりもちょっとだけマシな程度ということがわかったな。 悪夢のような民主党政権どころか、うつつの害悪安倍政権。 民主党はよくやってたわ。。今から見ると情報操作がひどすぎる。 >>945
これは探していたものかも、CRATE tableできるんですね
>>944
pandasのdf.to_sqlってSQLalchemyのengineも使えるんだ、スゴい 社内のデータベースからお問い合わせ内容を抜き出して、Googleのように関連するキーワードの候補を表示させたいんだけど、Pythonで実現できる? >>944
engineはただのproxyだから。
model(Base)まで作ってくれるわけではない。
もっとも、tableをつくってしまえばsqlalchemyでmodel化するのは簡単だけど。 >>950
自分なら
サジェスト機能はデータベース(ElasticsearchやApache Solrなど)に任せる
フロントエンド側でデータベースに問い合わせる
という実装をする
pythonを無理やり噛ませるとするなら
既存データベースからElasticsearchへ関連データを登録するプログラム
Elasticsearchへ問い合わせるプログラム
くらいだろうか >>952
ありがとう
elasticsearchって初めて知った…
まだ詳しく見れてないけどSQLのような感じで条件組んで、エクセルで加工するようなことはkibanaっていうのでやるのかな?
難しい? >>953
普段からデータベースに触っている人なら同じくらい簡単
細かいことをやろうとすると面倒なのも一緒
Kibanaはブラウザで可視化、分析したい人が使うツール
使い始めると、何でもかんでもElasticsearchに登録したくなるので、そのときはLogstashを使う
APIが揃っているのでpythonから見ると本当にAPIを叩くだけ >>954
ありがとう!
環境整備して勉強してみる! >>951
すいませんその簡単なやり方教えてもらえますか? >>950
一番簡単、確実なのはword2vecかword2docかなあ >>959
word2vecって便利だね、これも試してみる。 4873114705
978-4-87311-470-5
チェックサム値がどっちも同じになるケースも割とあるんだね processingはプログラミングの勉強としていいですよね 昔のBASICなみに結果がすぐに可視化されるからやる気は続く
ウインドウが生成されるのもポイントか >>963
> processingはプログラミングの勉強としていいですよね
新入社員かな?
processingの意味ってわかってないでしょ?
人前でそんなこと言わないほうがいいよ。
バカと思われるから。 >>965
釣りかも知れないけどマジレスするとProcessingという言語のことだと思う
直感的だしもっと流行ってもいいと思う tkinterでmultiprocessも勉強になると思います! ai pythonで動画をロリ化するのはむずいですか? >>968
(・∀・)つ∴ ニクコプーンクウタンカ?
こないだその質問してたばっかりでショ テキストファイルの中から特定の文字列を含む行と
その直前の一行と、直後の二行を削除するスクリプトを書きたいんですが
どなたか教えてくれませんか?
調べてもなかなかスマートなものが出てこなくて困ってます
出来るだけわかりやすくシンプルに書きたいんのですが… >>970
pythonでやるような処理ではないが、似たような質問ばかりで何でこんなことになってるんだ
大学の課題か何かなんだろうか
コマンドラインでgrepを使う方が簡単で速い
grep -B 1 -A 2 キーワード
-B 1で直前の1行、-A 2で直後の2行が表示される >>970
すまん、よく読まずに投稿した
削除するスクリプトだったらファイル名 hoge.txt に対して
grep -B 1 -A 2 キーワード hoge.txt | grep -vFf - hoge.txt
とする
GNU grepが必要なのでmacでは標準のgrepじゃなくて
brew install grep
した上で/usr/local/opt/grep/libexec/gnubin/grepを使ってくれ >>972
丁寧にありがとうございます
早速試してみます
Pythonでやりたかったのは実行ファイル すいません途中で本文消えてましたが
pythonの実行ファイル形式にしてこの作業を一括でやらせようと考えてました
Pythonでは少々面倒なんですね…
初歩的な質問ですいませんでした 正規表現で.*\n.*特定の文字列.*\n.*\n.*\nで置換すんじゃダメなの? >>975
すいません勉強不足で知りませんでした…
ありがとうございます
これでやりたいことがやれそうです
助かりました >>976
その置換だと先頭行と最終行はマッチしないので端点の処理は別途必要かな
暇だし作ってみた
forループによるチェック版
https://ideone.com/iJYYgZ
正規表現版
https://ideone.com/v29uYn
使い方はどちらも
python スクリプト名.py -B 1 -A 2 対象ファイル名 もし、検索ワードに、直前の1行・直後の2行が存在しなかったら、どうするの? >>977
度々ありがとうございます
こんなスラスラコード書けるのほんと尊敬します
もっと勉強しようとモチベーション上がりました
ありがとうございました 例えば、Ruby on Rails なら、(usersテーブル) Userモデルを、
クラス内に、抽象的な型で定義しておいて、
3大データベース(DB)で実行すると、各DB固有の型で、テーブルが作られる
class CreateUsers < ActiveRecord::Migration[5.0]
def change
create_table :users do |t|
t.string :name, null: false # not null
t.string :email
end
end
end 587:名無し募集中。。。:2020/05/11(月) 22:54:29
レス代行依頼
【状況】他板で連投規制にひっかかってBBx90日の刑
【板名】プログラム
【スレッドタイトル】くだすれPython(超初心者用) その47【Ruby禁止】報告
【スレッドURL】http://mevius.5ch.net/test/read.cgi/tech/1583509252/
【名前(省略可)】(代行経由)新鮮な次スレ
【メール欄(省略可)】あげ
【本文】 >>970
やる気は無いけど
探してる文字列と同じ文字列が
見つかった行とその下とか上にもあったら
どういう動作を期待してるの? ゲームプログレミンとワードプレスプラグラミンはどっちがかんたんですか? >>985
何をやるかにもよるけど一言で言えば
ゲームよりワードプレスの方が簡単
ゲームは動くけどブログは動かないから seleniumで自動化したいんだけど、ベッドレスモードで最速のwebdriverを知っていたら教えて欲しい。 >>988
自動化の用途にもよるけどHTTP Proxy使ってrecord&replyしたり
whitelist/blacklistを作って本当に必要なファイルだけ取得するするのが速度には一番効く selenuim使わんとheadlessChrome使えばいいだけでは >>988
HtmlUnit Driverが速いらしい Pythonのリアルタイム音声認識→文字入出力で、無料かつオフラインで最も精度が高いライブラリ等はどれですか?
SpeechRecognitionというのを試してみましたが、しゃべりながら認識するというよりは、しゃべり終わった後に文字が現れるという感じで
リアルタイム感があまりありません。
Google Speech APIを使うと高精度に認識できるのかもしれないですが
1か月に60分以上使うと従量課金になるようです。
やはり現時点では、有料のサービスでない限り、あまり精度の高い音声認識は出来ないのでしょうか? miniPyconかなんかでそんな」発表してた人がいた気がする プログラミングしててVS CODEで実行させたら突然
PS J:\> cd 'j:\backup\半側空間無視研究\計測分析ソフトウェア'; & 'C:\Users\takashi ishida\Anaconda3\python.exe'
'c:\Users\takashi ishida\.vscode\extensions\ms-python.python-2020.5.78807\pythonFiles\lib\python\debugpy\wheels\debugpy\launcher' '
51049' '--' 'j:\backup\半側空間無視研究\計測分析ソフトウェア\半側空間無視データ分析.py'
cd : パス 'J:\backup\半側空間無視研究\計測分析ソフトウェア' が存在しないため検出できません。
と表示されるようになりました。
プログラムはあるんですが、なにかVS CODEかPythonの問題でしょうか? >>993
自分の感覚では有料サービスだから、ではなくてインターネットに接続できて強力な単語補正の機能が利用できるから、だと思う
あとGoogle Speech APIやMicrosoftのSpeech SDKなどはそれなりに良いものだけど、用途によってはまだまだ厳しいと感じるね
CMUSphinxやKaldiとか色々あるけど、使って見たらサービスに全く勝てないのが分かると思う >>997
本当だ。
英語だけにしたらできました。
ありがとうございます。
でもいままで日本語のファイル名とかパス使ってても実行できてたんですが、
なんで急にできなくなったんでしょう? このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 70日 16時間 9分 4秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。