やわらかテック

興味のあること。業務を通して得られた発見。個人的に試してみたことをアウトプットしています🍵

Python

Pythonでデータ処理・グラフ描画できると業務の幅が広がる

僕がプログラミングを始めたばかりの頃はPythonを使って、データ処理・分析、機械学習といった内容に取り組んでいました。 当時、業務(アルバイト)ではCSVファイルをpandasで読み込んで、前処理をしてmatplotlibを使ってグラフを描画して...というサイクルを…

Rubyで演算子の順序を入れ替えるとエラーになるのはなぜか

先日、Rubyで文字列を指定数分だけ繰り返す処理を書いていた所、面白い現象に遭遇しました。 文字列を繰り返すために*を使ったのですが「文字列 * 数値」の場合はエラーが発生せずに望み通りの値が返るものの、順序を逆にして「数値 * 文字列」とするとエラ…

Pythonからはじめるアルゴリズムトレードはトレード入門者向けの本ではない

衝動買いをした www.oreilly.co.jp 著者作成のレポジトリ github.com 2022年の4月のNewBooksに記載されており、前から気になっていたPythonからはじめるアルゴリズムトレード。立ち寄った書店に置いてあったので、衝動買いをした。 これで自動売買のトレード…

pandasでの保存形式はcsv、h5、pklでどれが良いのか

h5というファイル形式があることを知る オライリーから発売されたpythonではじめるアルゴリズムトレードを読み進めていた所、金融の取引データをpandas.DataFrameからh5という形式のファイルに出力していました。h5というファイルは階層的データを扱うための…

pythonでブルームフィルターを作って覚える

ブルームフィルター(Bloom Filter)とは ブルームフィルターというのは1970年にブルームさんが作った確率的データ構造と呼ばれるデータ構造の1つです。 データ構造というのは 配列 連想配列 リスト などをイメージしてもらえば良いのですが、確率的データ構造…

怖いコードレビューを楽しくするために自分が使っている絵文字を集計してみた

コードレビューって...怖いんだって いつものようにTwitterを徘徊していると、Rubyのチェリー本などで有名な伊藤淳一さんがこんなツイートをされていました。 「なぜここで1を加算してるんでしょうか?」とか、「シャドーイングってご存じですか?」みたいな…

ビジュアルプログラミングを卒業した後に覚えたいプログラミング言語

プログラミングを学ぶ背景 2020年より小学校ではプログラミングが必修化されて、必然的に小学校を卒業するまでに生徒たちはプログラミングを学ぶことになります。 www.mext.go.jp 小学校でのプログラミングが必修化されている目的として「プログラミング的思…

【使用例あり(for文vs内包表記)】Pythonでデコレーターを使って関数の平均実行時間を測定する

実装したデコレーター用の関数 全体のコードはこちら github.com すでに似た様な記事が多く記述されているが、指定回数の平均実行時間を出力したいのは自分が初めてだと信じて実装してみた。pythonのデコレーターを使用して、指定回数の平均実行時間を算出す…

【並行コンピューティング技法】第3章のまとめ

前回までのあらすじ 実際に並行処理を記述する際にどのように手法を決めて実装していくのかという話が第2章のメインであった。 並行処理の方針を決める手法は以下の2通りで、第2章ではそれぞれの特徴やマナー、サンプルに触れながら内容が進んでいく。 タス…

【擬似実装コード有り】Pythonでswitch構文っぽいものを表現する方法について

かゆい所に手が届くswitch構文 別にswitch構文がなくても、おそらくその処理は工夫次第で記述することが可能だろう。しかし、golangやjavascriptに見られるswitch構文を用いることで少なくとも可読性は上がるし、拡張性もif elseの組み合わせよりは良いはず…

【現役エンジニアが考察】はじめてのプログラミング言語習得のコツ。挫折しないためにはどう学ぶべきか

この記事を書く理由 個人的にElixirというプログラミング言語の勉強会を主催したり、セミナーに登壇する中で多くのプログラミングの初学者や、現在、学習をしているが、何をしていいのか分からないなど多くの相談を受けた。毎度、回答する中で「参考になりま…

みんなのAIキャリカレッジin関西にて頂いた質問17個への回答まとめ

みんなのAIキャリアカレッジin関西 edgeai.connpass.com 先日こちらのイベントのパネルディスカッションなるものに登壇させて頂きまして 参加者の方から頂いた質問にお答えしました 自分自身は業務として機械学習に取り組む人間の1人として回答をさせて頂き…

【Enun.sum vs Enum.reduce】Elixirでの実行速度の測定と色々と実験してみた

測定に至る背景 再来週に開催する清流elixirの勉強会でifとパターンマッチでそれだけ実行速度に差が出るのかを測定しようと企画している そのために自身の予習を兼ねて、Elixirでの実行速度の測定方法について調査し、簡単な実験を行なってみた 以前から気に…

【実装コード有り】Elixirでpandasっぽいcsvファイルを触るモジュールを作ってみた

ゆるふわな動機 pythonのライブラリにpandasと呼ばれるものがある 厳密にはC言語で書かれているのでpythonかというとそうでもないが このpandasが提供しているAPIにread_csvというものがあり csv形式のファイルをdf形式で読み込みpandasでお気軽にゴリゴリと…

【続編】Responderで作成したAPIをheorkuにデプロイするまで

やりたいこと www.okb-shelf.work 前回の記事でResponderを使って作成したAPIをherokuにアップしたい 野望としてはDockerに乗せてアップしたかったのだが、時間的な都合もあり とりあえずはDocker無しで動くものを一旦デプロイした 公式のサンプルが当てにな…

VSCode使って初学者とコードレビュー兼ペアプロしてみた感想

やってもらった課題 未経験者にプログラミングを教えて得られた知見と反省点と登場したA君に やってもらっていた課題が完成しましたとの報告が届いた ちなみにどんな課題をやってもらっていたかというと name score subject Kennith Kling 18 math Oliver O'…

【超簡単】PythonとResponderで爆速でAPIを立ち上げるまで

Responderについて github.com 2018年の10月ぐらいに公開されたPythonのWebフレームワーク 当時からスター稼ぎまくりのおばけプロジェクトだった たまたま仕事で触る機会があったので自分のメモがてらまとめておく Python界隈では有名な方が作成しており Fla…

未経験者にプログラミングを教えて得られた知見と反省点

ちょっと前にプログラミングを勧めた 地元の後輩が何をしていいか分からず悩んでいるとのことで 「とりあえず損することはないからプログラミングをやっといたら?」 と責任があるのか無責任なのか分からない一言を発する プログラミングを勧めている理由は …

ErlPortでpythonのクラスメゾット呼び出しとElixir側にAtomを返す

前回のはなし www.okb-shelf.work Elixirからpythonの関数を呼び出して、最終的にjanomeを使って形態素解析を行いました 本当はpythonのclassメゾットの呼び出しとElixirに対して Atomのデータを返すということがやりたかったんですけど そこそこ記事が長く…

Elixirからpythonを呼び出してJanomeで形態素解析してみた

ErlPortなるものを発見 色々とネットサーフィンしてたらErlPortというErlangのライブラリを発見 なんとErlang環境からpythonとRubyを実行できる模様...凄すぎる ErlangのモジュールはElixirから呼び出し可能なので勝ちました 前回の記事で作成したparser関数…

【サンプルコード有り】形態素解析をササッと試すならMecabよりもJanomeが良い感じ

Janomeとは mocobeta.github.io Pure Python(通常のpythonのみ)で書かれている日本語の形態素解析のためのパッケージです。自然言語処理で主に行われる「形態素解析」を気軽に行うことが出来ます。そもそも「形態素解析って何?」という方のために形態素解析…