くだすれPython(超初心者用) その35 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その34
http://echo.2ch.net/test/read.cgi/tech/1495971255/
VIPQ2_EXTDAT: default:vvvvvv:1000:512:----: EXT was configured >>744
32bitだと1アプリにつき256MBまで制限があったようななな
そこはだいじょうぶ? dllを64bitで再コンパイルしたところ無事読み込めました。
有難うございましたm(_ _)m >>747
オラはuwscで基礎が無くてわからなかったから、Pythonで基礎覚えるために本読んでる。 最低限度は実現できたのでpythonでリセマラしてる動画あげますね numpyでRuntimeWarningが起きているのですが
どこで起きているのか突き止める方法はありますか?
警告文見てもプログラムのどこで起きてるか書いていません。 警告メッセージでnumpyパッケージのソースを検索しろ
面倒くさかったらnumpyのリポジトリを検索しろ 興味ある方いたらリプくださればDLLお渡しします!
作成途中ですが...。
基本どの言語からも呼び出せますがC++、python、UWSCには対応しています。 >>753
true divideとscalarなんとかでwarningになってるのは分かるのですが
それを使っている箇所が多すぎて、どの場所でこのwarningが吐かれているのかが分からないのですが、どうすればいいですか? 我々は「なんとか」じゃ分からないよ
たとえ自力で解決できなくても、
警告メッセージをコピーしてここに貼るくらいはできるのではないか まあinvalid value encountered in {type}_scalarsの類だとは思うが Python使いは野良ライブラリに依存しすぎ
導入・設定・学習・トラブルシューティングで一体どれだけの
エネルギーと時間を失っているか考えてみよ 考えてみたけど特に嫌な目にあった記憶はない
若造とは筋力が違う >>758
メッセージは以下で全てです。(NGワード対策でディレクトリ一部省略してます)
numpy\core\_methods.py:135: RuntimeWarning: Degrees of freedom <= 0 for slice
keepdims=keepdims)
numpy\core\_methods.py:105: RuntimeWarning: invalid value encountered in true_divide
arrmean, rcount, out=arrmean, casting='unsafe', subok=False)
numpy\core\_methods.py:127: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount) ランタイム エラー
無効な値が検出
エラー箇所
numpy\core\_methods.py:105
numpy\core\_methods.py:127
numpy\core\_methods.py:135 RuntimeWarning
そのランタイム機能があいまいであることを示す警告カテゴリの基底クラスです。
exception RuntimeWarning(原文)
あいまいなランタイム挙動に対する警告の基底クラスです。 >>752
このへんを参考に
ttp://racchai.hatenablog.com/entry/2016/05/30/070000
PDBっちゅーでばっぐ支援もじゅーるを入れる
あるいは
古典的にprintデバッグをする >>763
正確なエラーメッセージで、検索する!
それが開発者の基本 >>767
ほんとそれですね。
大体の所、検索すると同じ症状に当たって、誰かが解決してる。
自分が一番最初にバグを踏んだ人間だと思うのは、初心者には
傲慢すぎるんじゃと思う。 それは傲慢とは言わんやろ
傲慢というのは半ばバグと決めてかかってるお前みたいな奴の事 >>767
警告内容的には、調べて何となく分かるのですが。
該当箇所が多すぎて、どの場所か分からないのです。
例えばエラーなら、起きたらそこで止まって何行目でエラーになってるか吐いてくれるじゃないですか?
警告だと何行目で警告が起きてるか知るすべはないのですかね・・
ないなら支援モジュールとやらを入れて見ますが。
ちなみにVSのデバッグ機能で何とかなったりしないのかなあ >>770
なんとなく予想はついてたが、やっぱりな
numpy.seterrでraiseに設定すると例外になって止まる >>770
そう言う場合は
一単語ずつggりましょう。 >>770
except Warning: で警告が出たらつかまえるようにしておいて
ステップ実行 >>770
ていうか警告出そうなことばっかりしてんのかよ
全部なおせよ >>772
ありがとうございます!これを待ってました。 pythonて手続き型で書くのが一般的なんでしょうか? promiseのモジュール使って書いてるひといる? 例えばx(3,4)の2次元配列を10層繰り返してy(10,3,4)の形にしたいとき、y=x*np.ones(10,1,1)
で解決できると思うんですが、xからy'(3,4,10)の形にしたいときはどんな方法がありますか?
yから軸入れ替えてy'、は流石にもっといい方法がありそうに思えて…… >>786
ありがとうございます!
y'=y.transpose(2,0,1)で解決できることはわかりました
xからy'へ直接操作できる方法に心当たりあれば教えてもらえるとありがたいです PythonインストールしてPATH環境も整えたのですがコマンドプロンプトからpyファイルが開けません。dirで確認してもファイルは存在しているのに「No such file or directory」とエラーが出て困っています、原因分かりますか?
https://i.imgur.com/mbGWkyw.jpg >>789
うわ、ありがとうございます
超初歩的なとこでした シーケンス型をスライスする時
二番目に指定するインデックスが
「末尾のインデックス」ではなく「末尾のインデックス+1」になる
合理的な理由はありますか?
[開始インデックス:末尾インデックス]
の方が分かりやすいし自然だと思うのですが。
最初によく考えずにそう決めてしまったので、
仕方ないからそのままそういう規則を続けているように見えますが
違うのでしょうか? arr == arr[:n] + arr[n:]
が成立するのは合理的だろう
最後の二行は素人考えだと馬鹿にされるから書かない方が良かったね 頭使ってねえなってのはurllib/urllib2みたいなのを言う a_list =['a', 'b', 'mpilgrim', 'z', 'example']
右側のスライスインデックスがリストの長さと同じである場合は、これを省略できる。
つまりa_ list[ 3:] は、このリストが5 つの要素から構成されているので、a_ list[ 3: 5] と同じになる。ここには気持ちの良い対称性がある。
この5 つの要素を持つリストでは、a_ list[: 3] は最初の3 要素を返し、a_ list[ 3:] は最後の2 要素を返す。
実際に、リストの長さにかかわらず、a_ list[: n] は常に最初のn 個の要素を返し、a_ list[ n:] はその残りを返す。 >>794,796
すみません、全然分かりません
「最初」と「最後」の方がよほど対照的で気持ちがいいですが。
気持ちが悪い状態が常で、
たまに気持ちがいい、というだけでは、合理的な理由とは言えないと思います
おそらくforループの判定式みたいなイメージで、
インデックスがこの値になったらループを抜ける、ということにしたのではないでしょうか。
古い言語ですし、イケてないところがあるのも仕方ないですね 参照や削除なら要素のインデックスそのものを扱う方が圧倒的にわかりやすい
けれど挿入の場合、要素ではなく要素の切れ目を扱わざるを得ないので
結局スライスの表記は後者に統一せざるを得なかったのだと思う
さらにゼロ相対インデックスも絡んでくるので非常にややこしい
スライスはできるだけ使わないに越したことはない arr[3:7]のlenが7-3=4になる優れた記法だと思うが
arr[i:i+l]って良く使うし お前らのよくわからないけど無理矢理擁護してる感たるやw なんでPythonってAIに向いてるって言われてるの?
JAVAやCとかと決定的に何が違うの? 向いていると言った人にまず尋ねなさい
我々は予想屋ではない >>805
ごめん
向いているというか人工知能の開発でよく使われているって聞いたんだ
ベンチャー企業の社長に説明会みたいなので
Pythonはどこがどう優れているのかなって思いまして >>807
好奇心は若者の特権だろ
お前教えてやれ 素人に使えて、性能も悪くない。
研究者はプログラマではないので、素人に使えるという部分が重要。 >>806
よく使われているからといって向いてるとか優れているとは限らない。
単に一般によく使われている言語だから同様にAIでもよく使われているだけって可能性もある。
まぁ、よく使われていれば便利なものが集まってさらに便利になっていくという正のフィードバックも
あると思うが。 数学とネットワークのライブラリが充実してるから。
二つ同時に満たすのは少ない。 ライブラリの豊富さはPythonさいつよだったかも
研究者によってはMATLAB使ってたりしたけど 一週間使ってだいぶ慣れてきた
数字を安易に型変換してくれないのとタプルに慣れればなんとかなりそう argparseでコマンド引数扱うのって常識なんですか? >>815
んなことはないだろう
あれは難解すぎて使える人はごくわずかのはず
ドキュメントを読んでみたがさっぱりわからんかった >>815
argparse モジュールの使用が常識かどうかは知らないけど、一応推奨モジュールだよねぇ。
Python3 だけじゃなく、Python2 でも使えるんだから、
もし optparse を使っているのなら、同じような書き方だし、移行しておいてもいいんじゃない?
移行自体はそれほど大変じゃないし、公式ドキュメントに変更箇所が細かく書かれているから。
>>816
ArgumentParser で生成、add_argument() で引数追加、parse_args() で解析して渡すだけ。
後は必要に応じて少しずつ足していけばいいと思うよ。 ドキュメントがさっぱりなのは書き方の問題だと思われる >>814
落とし穴はまだまだいっぱいあるから楽しみにしてて 今までは自力でコマンド引数解析してたから
argparseにしてだいぶ楽になった
default値設定とか型指定できるのがうれしい 読んでる本に下記と同様な内容の記述があるのですがどのように解釈すればいいでしょうか?
a = 1
b = 2
f = lambda c: a + b
1.やってみてらエラーがでた
f(5,6)
2.やってみたところエラーにはならない
f([5,6])
# この後 c を見ようとしたらSyntaxError。 >>823
そりゃそうだlambda関数といいながらその式は関数ではなく手続きに
なってしまってる
a = 1
b = 2
が無ければその式もエラーになるはず
本来は
f = lambda a, b: a + b
と書くべきだったのだろう
エラー内容もちゃんと読もうな try exceptのテストをしたい時って
try節の中でraiseで例外出せばいいの? import numpy as np
class Cls:
def __init__(self):
self.a = np.array([1])
def Func(self,b):
return self.a +b
def Func(f,c):
c[0] = 3
return f(c)
o = Cls()
x = 2
f = lambda c: o.Func(x)
print (Func(f,o.a)) 途中で書いてしまいました。
正確には >>826 のような内容です。 本当にそう書いてあるのならその本を捨てるべきだろう arrayクラスを継承するにはどうすればいいのでしょうか?
下のはダメでした。
class MyArr(array.array):
def __init__(self):
super().__init__('I') hogeはテキストじゃないファイル
fp = open("hoge", "rb)
____print(fp.read())
これで\x00\x16こんな感じのよくわからない記号が出るんだけど
10バイト目から14バイト目までの合計5バイト分を読み取って数値に変換する方法を教えてください
\x00みたいな数値に出来ない文字も多分含まれてると思う >>832
取扱い方がわからないデータはlist()関数でリストにしてしまえば何とかなる
そこがPythonのいいところ pythonでロギングする時の
標準的なお作法を教えてください そして、ブラジャーを頭に載せ、ホックを顎の下でかけます。 >>806
AI用のライブラリーが豊富だから。tensoflow chainer KERAS caffe sklearn numpy。 >>833
横だが役に立つ概念を知って俺のレヴェルがうなぎのぼり >>841
おう、役に立って良かったよ
ただ、何百万件とかの大量のデータをいきなりリストに変換すると
スワップしてPCがゴゴゴと唸って怖いので
Sqliteに格納してSQLで絞り込み処理をした方が良い python3.6で日本語をバイナリに書き込む方法を教えてください
s = 'あいうえお'.encode('utf-8')
with open('hoge', 'wb') as f:
f.write(s)
これだとそのままファイルに あいうえお が書き込まれてしまいます ■ このスレッドは過去ログ倉庫に格納されています