読者です 読者をやめる 読者になる 読者になる

静かなる名辞

pythonと読書

wifiアダプタのないlinux PCを無線LANに繋ぐ

先日新しくPCを組みましたが、家庭の事情で無線LANしか繋げない状況でした(無線LANルータとか全部1階にあるのに2階にPC置かざるを得ない、みたいな状況だと思いねぇ)。しかし、使うマザーには無線機能などありません。こういうとき、windowsはどうにでもな…

xubuntuをcliモードで起動する

わかるようなわからないような感じだったのでメモ。 まず、基本的なやり方としては下ので良い。 Ubuntu日本語フォーラム / CUIでの起動、ログインについて $ sudo systemctl set-default multi-user.target ただし、このコマンドを打ってrebootしてみたら起…

ryzenマシン作りました

ryzenのマシンを作りました。1700Xにトマホークという特に面白みのない構成で組んでみました。 ハード自体は大きな問題もなく立ち上がりましたが、OSのインストールでドはまりしました。そもそも、今回はwindowsとlinuxのデュアルブートにする予定でした。先…

【common lisp】common lispでn-gram

趣味でCommon Lispを始めました。とりあえず練習にn-gramを書いてみました。 書き方は色々あると思いますが、ループ構文がまだいまいちわからないので再帰で書きます。 (defun rec-ngram (list n &optional (ret-list '())) (if (eq (length list) (- n 1)) …

【python】pythonでボゴソートしてみる

みんな大好きボゴソート。愚直に実装するならそんなに面倒なことはない。 import random def bogo(lst): while True: random.shuffle(lst) xb = lst[0] flag = True for x in lst[1:]: if xb > x: flag = False break xb = x if flag: return None 色々イケ…

【python】pca、mds、nmds、tsneとmatplotlibでデータの可視化をしてみる

タイトルの通りのことをする。データセットはirisとdigitsを使ってみる。 ソースコード。 # coding: UTF-8 from sklearn.datasets import load_digits, load_iris from sklearn.manifold import MDS, TSNE from sklearn.decomposition import PCA from matpl…

【python】sqlite3に任意のpythonオブジェクトを突っ込む

データベースにpythonオブジェクトをinsertしておいて、必要になったときにselectして取り出せたら便利だよね。sqlite3のドキュメントを見ると、一応やり方自体は書いてある。 12.6. sqlite3 — SQLite データベースに対する DB-API 2.0 インタフェース — Pyt…

昨今のAI議論の違和感と、僕のAIに対するスタンス

アルファ碁がイ・セドルに勝った頃からか、一般の界隈でAIに関する議論が盛り上がるようになってきた。それも、どちらかといえばネガティブな議論が多い。 「AIが人間の職を奪う」とか、「経済に悪影響を及ぼす」とか、なんとか。 科学者やアナリストも便乗…

【python】pythonでzipしたものを元に戻す(unzipする)

pythonでゴリゴリ処理を書いていると、「とりあえずzipでまとめといて後からほぐす」的な処理をうっかり書いてしまうことがある(本当にそのデータフローが最適なの? という疑問は常にあるのだけど、ループ処理の都合でその方が書きやすかったりすると特に…

【python】pickleの速度を見る

pickleが遅くて困った経験、ありませんか? 私はありませんが、実際問題としてpickleの速度ってちょっと気になりますよね。 という訳で、測ってみました。 # coding: UTF-8 import sys import pickle import time import numpy as np for obj_size in [10,50…

【python】numpyの型の違いによる計算速度差を見てみる

前回の記事で「なんとなくnp.float32が速い気がする」とか書いたので、実際に測ってみる。 予め断っておくと、計算速度なんて環境によって違うし、どの型が速いかもCPUのアーキテクチャに依存する。numpyはバリバリにSIMD命令を使って最適化する(と、思う)…

【python】pythonでメモリ不足になったときにすること

pythonはLLですが、なぜかメモリを何十GBも消費するような(一般的なPCのリソースからすれば)大規模なデータ分析に広く使われています。このようなデータ分析では、往々にしてメモリ不足が生じ、それなりに配慮してプログラムを書かないとそもそもプログラ…

【python】pythonでn-gramの特徴量を作る

○○ってパッケージでできるよ! という意見もあると思いますが、ちょっと挙動を変えたくなる度にパッケージのhelp読んだり、微妙に柔軟性のないパッケージに苦しむ(たとえば文末の句点と次の文の最初の文字は繋げないで欲しいのにできない、とか)くらいなら…

【python】pythonのsetは値比較なのか?

ふと思った。「pythonのsetって値比較してるの?」 >>> a = ("hoge",) #同値かつ同一でないimmutableの作り方がタプル以外思いつかなかった >>> b = ("hoge",) >>> a is b False >>> id(a) 140412431555272 >>> id(b) 140412430884312 >>> set([a,b]) {('hog…

【python】pythonでもprintf/scanfしたい!

※注意! この記事はネタ記事です。この記事に書いてある方法でpythonからprintf/scanfを使うことはできますが、実用性は保証しません。 C言語でプログラミングの基礎を勉強した人がpythonにやってきて初めに抱く不満は「文字列処理面倒くさ」ではないでしょ…

おすすめのテキストエディタ

テキストエディタと言っても、vimとかemacs、秀丸だのサクラだの、Sublime TextだのAtomだのの話をしたいのではない。そりゃ、真面目にソースコードだの文章だのを編集するなら大掛かりなエディタだって必要かもしれないけど、普段ちょっとしたテキストファ…

【python】multiprocessingはアホみたいにメモリ食うよって話

タイトルで落ちてるんだけど、それなりに大きい(それでも数GBとかそんなもん)データをmultiprocessingで処理しようとしたら、メモリが溢れて大変だった。 multiprocessingはプロセス間でメモリを共有しない。ということは、必然的にそうなるしかないのだが…

【python】sklearnの次元削減クラスSelectPercentileとSelectKBestについて

ネットの巷には「sklearnで次元削減するのでとりあえずPCA使ってみました」という記事が溢れかえっているのだが、PCAは基本的に線形な世界でしか動かないので、扱うデータによっては「PCAかけてから分類器に入れたら精度がガタっと落ちました」みたいなこと…

【python】 immutableを参照渡ししたい

pythonの参照渡しスタイル(を積極的に利用するコーディング)にケチ付ける記事を書いたんだけど、しばらく経ってから「逆にpythonでCみたいなバリバリの参照渡しするにはどうしたら良いんだ?」という疑問を持った。 たとえば、Cで言うところのこういうもの…

【python】メモリ上のオブジェクトを是が非でも圧縮したい

でかいデータをなにも考えずメモリ上に置いておくと、あっという間にメモリが埋まる。不要なデータはこまめに消して、必要なときに必要なものだけメモリに置くようにすれば大抵なんとかなるのだけど、そうやって整理していくと、ある水準を超えたところで処…

【python】random.shuffleについて

問題のコード こういう奴。 import random lst = list(range(10)) shuffled = random.shuffle(lst) for x in shuffled: print(x) いかにも人畜無害な雰囲気のコードですが、実行すると「TypeError: 'NoneType' object is not iterable」を吐いてくれます。 …

【python】混同行列(Confusion matrix)をヒートマップにして描画

pythonでラクして混同行列を描画したい(sklearnとかpandasとかseabornとか使って)という話。 そもそもscikit-learnにはsklearn.metrics.confusion_matrixなるメソッドがあって、混同行列がほしいときはこれ使えば解決じゃん、と思う訳だが、このconfusion_…