静かなる名辞

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

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



Ubuntu 18.04 LTSにvenvでミニマムなPython3.7仮想環境を構築

概要 まっさらなパソコンを開発環境として立ち上げることになり、表題の通りのことをやる必要があったのでまとめておきます。 venvを使うつもりなので、作業量としては少ないはずです。 Python3.7の導入 Ubuntu 18.04はデフォルトでpython2が導入されていま…

【python】pandasのto_sqlを試してみる

はじめに 気軽にDataFrameをデータベーステーブルに変換できそうなto_sqlなるものがあるので、試してみます。pandas.DataFrame.to_sql — pandas 0.23.4 documentation sqliteを使いたかった ドキュメントではSQLAlchemyを使ってSQLiteを叩いているようですが…

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の性質がまだよくわかっていないので、比較を行ってみようと思います。 参考文献 大元はsklearnのこの記事です。scikit-learn.org また、コードを1から書き上げるほどの情熱が今回沸かなかったので、自分の過去記事からコピペして…

【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のその後

はじめに 以前このような記事を書きました。www.haya-programming.com www.haya-programming.com 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>…