静かなる名辞

pythonとプログラミングのこと

2019/03/22:TechAcademyがteratailの質問・回答を盗用していた件
2019/03/26:TechAcademy盗用事件 公式発表と深まる疑念


numpy配列に文字列を格納した場合の型と挙動

numpy配列に文字列を格納した場合、どう扱われるのか知らなかったので、調査してみました。 まず基本。 >>> import numpy as np >>> a = np.array(["a", "b"]) >>> a array(['a', 'b'], dtype='<U1') >>> type(a[0]) <class 'numpy.str_'> 配列そのものは「</class></u1')>

【python】threadingでsleep中に即座にスレッドを止める

pythonのスレッド活用というと、こんなコードがすぐに思い浮かびます。 # エンターされるまでは数字を更新して、 # エンターされたら終了する(つもり) import time import threading flag = True def th(): i = 0 while flag: print("\r{}:".format(i), en…

もう参照の値渡しとは(無条件では)言わせない

注意:この記事では「参照の値渡し」がどういうものか、という点については説明しません。あくまで「参照の値渡し」を理解している方が対象読者です。 概要 「参照の値渡し」という言葉がありますが、この言葉に関してはずっとモヤモヤ感を抱いていました。 …

AdaBoostとRandomForestの比較

AdaBoost(アダブースト、もしくはエイダブースト)は代表的なアンサンブル学習アルゴリズムとしてよく取り上げられるものですが、実用的に使っている事例はあまり見かけません。ランダムフォレストでいいじゃんとなっていることが多いのではないでしょうか…

【python】sklearnのAdaBoostをデフォルトパラメータで使ってはいけない

はじめに sklearnのAdaBoostを使う機会がありましたが、デフォルトパラメータのまま使ってみたら性能が悪すぎて驚きました。 対策を書きます。 症状 とりあえずデフォルトパラメータで動かしてみて、様子を見るというシチュエーションはたくさんあると思いま…

【python】MeCabバインディングのparseToNodeでBOS/EOSを除外

はじめに mecab-pythonで以下のようなコードを書くことがよくあると思います。 import MeCab s = "吾輩は猫である。" tagger = MeCab.Tagger("") tagger.parse("") node = tagger.parseToNode(s) while node: print(node.surface, node.feature) node = node…

はてなブログの独自ドメイン化でカバレッジが切り替わらないときの対処

はじめに 去年の秋頃、このブログを独自ドメイン化しましたが、今年に入ってもSearch Console上で古いサイトのインデックス・カバレッジが大量(数百件とか)に残ったままでした。 思いついた方法を試したところ、さほど重要でないページ数件*1を残してカバ…

TechAcademyのその後

はじめに 以前このような記事を書きました。TechAcademyがteratailの質問・回答を盗用していた件 - 静かなる名辞 TechAcademy盗用事件 公式発表と深まる疑念 - 静かなる名辞 TechAcademyに問い合わせたところまでで終わっていましたが、その後すこし私生活が…

TechAcademy盗用事件 公式発表と深まる疑念

TechAcademyマガジンで、teratailの質問・回答の盗用疑惑があり、前回の記事で取り上げました。私が書いたその記事はTwitterやはてブ経由で拡散して多くの方に見ていただき、TechAcademyマガジンの運営上の問題が多くのインターネットユーザに共有されました…

TechAcademyがteratailの質問・回答を盗用していた件

はじめに 私はteratailというQAサイトで回答をしていて、pythonカテゴリ総合一位だったりします。あちこちのサイトを見ていたら、TechAcademyというサイトがteratailの質問と回答を盗用しているという話を見つけました。図々しいと思いながらも情報をまとめ…

【python】複数のlist(など)を対象にmapを使う

あまり知られていませんが、組み込みのmapは実は複数のiterableを引数に取れるように定義されています。 追加の iterable 引数が渡されたなら、 function はその数だけの引数を取らなければならず、全てのイテラブルから並行して取られた要素に適用されます…

【python】__slots__は速度的にどうなのか

概要 __slots__を使うとメモリをケチれるという話はよく見かけますが、属性アクセスの速度については話を聞かないので調べてみました。 実験コード import timeit class A_slots: __slots__ = ["a"] def __init__(self): self.a = 42 class A_attr: def __in…

【python】辞書で複数の値を一つのキーにする

概要 複数の値を一つのキーにまとめて、結果と対応させたいというケースがあります。 >>> d = {1,2:"hoge", 3,4:"fuga"} # こんな感じ? 残念ながらこれはエラーになります。 File "<stdin>", line 1 d = {1,2:"hoge", 3,4:"fuga"} ^ SyntaxError: invalid syntax </stdin>…

【python】sklearn 0.20でclassification_reportの仕様が変わっていた

はじめに 遅まきながら、sklearn 0.20でclassification_reportの仕様が変わったことに気づきました。 基本的な使い方は変わりませんが、それなりに大きな変化になります。 変更点 まず0.19の引数と出力のフォーマット。 sklearn.metrics.classification_repo…

【python】print関数を使いこなそう

ぼくたちは本当のprintを知らない pythonのprint関数については、たかがprintと思っている人も多いと思いますが、しかしオプションをすべて言える人はあまりいないと思います。把握しておくと出力の細かい制御をしたいとき役立ちます。 そこで、printの使い…