はじめに プログラミング自体は文系、理系、年齢関わらず勉強すればある程度ものになります。プログラミングがある程度できるようになるとTensorflow,PyTorchやscikit-learn等のライブラリで簡単にできる機械学習やデータサイエンスに興味を持つの必然! これからさらになぜ上手くいくのか・いかないのかの議論をしたい、社内・外に発表したい、理論的な所を理解したい、先端研究を取り入れたい、応用したい等々と次々に実現したい事が増えるのもまた必然でしょう。このときに初めて数学的なバックグラウンドの有無という大きな壁が立ちはだかります。しかし、数学は手段であって目的ではないので自習に使える時間をあまり割きたくないですよね。また、そもそも何から手を付けたら良いかわからないって人もいるかと思います。そんな人に向けた記事です。本記事の目標は式の意図する事はわからんが、仕組みはわかるという状態に
日本語の自然言語で書かれたテキスト中から、日付や時間、期間、頻度といった時間に関する表現を抽出し、Pythonのdatetime/timedelta形式に変換できるPythonパッケージ ja-timexを作りました。この記事では基本的な使い方や動作の仕組み、このパッケージの実装方針を紹介します。 ja-timexとは 皆さんも一度はテキスト中に現れる日付や時間を正規表現でパースした経験があるのではないでしょうか?もしくはdatetime.strptime(str, '%Y/%m/%d %H:%M')といったように、datetimeに変換するパターンを書くこともあるでしょう。こうしたプログラム上で日付や時間を扱うことはよくある作業であるものの、入力されるフォーマットが複雑になったり、日付がテキストの中の一部に含まれたりすると、途端に処理が面倒になります。日付や時間は決まったルールに従ってい
使っているパソコンを変えても、開発環境を揃えたい時はDockerを使うと便利。ということでDockerでPython環境を作って色々なところで使いまわせるようにします。Tokyo AEC Industry Dev Groupというミートアップグループで行う(行った)ハンズオンワークショップの内容となっています。こちらDockerを初めて使う初心者用の記事となります。 ワークショップ自体は録画してYoutubeにアップしてあります。そちらもよろしければどうぞ。 Dockerとは Dockerとはシステム開発や運用に最近よく使われるコンテナ技術を提供するサービスの一つです。コンテナとは、アプリケーションの実行に必要な環境をパッケージ化して、いつでもどこからでも実行するための仕組みです。自分のコンピュータの環境を汚すことなく、隔離された環境を作ってそこでプログラムを動かすことができるのでトライア
東京大学がちょっとびっくりするくらいの超良質な教材を無料公開していたので、まとめました Python入門講座 東大のPython入門が無料公開されています。scikit-learnといった機械学習関連についても説明されています。ホントいいです Pythonプログラミング入門 東京大学 数理・情報教育研究センター: utokyo-ipp.github.io 東大のPython本も非常にオススメです Pythonによるプログラミング入門 東京大学教養学部テキスト: アルゴリズムと情報科学の基礎を学ぶ https://amzn.to/2oSw4ws Pythonプログラミング入門 - 東京大学 数理・情報教育研究センター Google Colabで学習出来るようになっています。練習問題も豊富です https://colab.research.google.com/github/utokyo-ip
1. オブジェクト指向の起源 2003年チューリング賞の受賞者アラン・ケイさんはよくオブジェクト指向プログラミングの父と称されます。ご本人も憚ることなく、幾度、公の場で発明権を宣言しています。しかし、ケイさんは「C++」や「Java」などの現代のオブジェクト指向言語を蔑ろにしています。これらの言語は「Simula 67」という言語を受け継いだもので、私が作った「Smalltalk」と関係ないのだとケイさんは考えています。 オブジェクト指向という名称は確かにアラン・ケイさんに由来するものです。しかし、C++とJavaで使われている現代のオブジェクト指向は当初のと結構違います。ケイさん自身もこれらの言語を後継者として認めないです。では、ケイさん曰くC++とJavaの親であるSimula 67という言語はどんな言語でしょうか。ここで、簡単なサンプルコードを見てみましょう。 Class Recta
はじめに 気象関係の要素を計算する関数、例えば気温と相対湿度から露点温度を求める関数などを集めたPythonモジュール wxparams を作ったので、公開します。 (Weather Parametersの略) Pythonを始める前はPerlで気象データを処理するスクリプトをよく書いていて、やはり気象関係でよく使う関数をPerlモジュールにまとめていました。コロナ禍の影響で家で過ごす時間が増えたので(笑)、この機にPythonに書き換えようと思ったのがきっかけです。 どうせ作るなら公開してしまおうということで、ソースコードはGitHub、コード例などの使い方はnote、マニュアルとして関数の説明などはこの記事にまとめました。 Ver1.0 : 2020/04/24 Ver1.1 : 2020/05/27 気温の単位:摂氏 <=> 華氏の変換を追加 Ver1.2 : 2020/10/03
文:Daniel Sim 分析:Lee Shangqian、Daniel Sim、Clarence Ng ここ数ヶ月、シンガポールのMRT環状線では列車が何度も止まるものの、その原因が分からないため、通勤客の大きな混乱や心配の種となっていました。 私も多くの同僚と同じように環状線を使ってワンノースのオフィスに通っています。そのため、11月5日に列車が止まる原因を調査する依頼がチームに来た時は、ためらうことなく業務に携わることを志願しました。 鉄道運営会社SMRTと陸上交通庁(LTA)による事前調査から、いくつかの電車の信号を消失させる信号の干渉があり、それがインシデントを引き起こすことが既に分かっていました。信号が消失すると列車の安全機能である緊急ブレーキが作動するため、不規則に電車が止まる原因となります。 しかし8月に初めて発生した今回のインシデントは、不規則に起こっているように見えるた
仕事ではよくPythonを書いています。 よく使うのでそれなりに知っている気になっていたのですが、 コードをレビューしてもらったり本を読んだりしているうちに”もっと早く知っておきたかった・・・”というネタが溜まってきたので、その中から厳選した5つの小ネタをまとめてみました。 *この記事で使用しているPythonのバージョンはPython 3.7.3です。 この変数、一体何桁? 例えばこんな変数があったとします。 num1 = 100000000 num2 = 10000 num3 = 3023204903 こんな変数がたくさんあったらどうしましょう。 桁を数えるだけで目が疲れそうです。 ぱっと見でだいたい何桁あるかわかるといいですよね。 Pythonでは数値型に_を挟んでも、そのまま数値として計算することができます。 >>> num1 = 100_000_000 >>> num2 = 10
ソフトウェアエンジニアにとって、不具合に対抗する最も一般的な方法は自動化されたテストを書くこと。 テストでは、書いたプログラムが誤った振る舞いをしないか確認する。 一口に自動テストといっても、扱うレイヤーによって色々なものがある。 今回は、その中でも最もプリミティブなテストであるユニットテストについて扱う。 ユニットテストでは、関数やクラス、メソッドといった単位の振る舞いについてテストを書いていく。 Python には標準ライブラリとして unittest というパッケージが用意されている。 これは、文字通り Python でユニットテストを書くためのパッケージとなっている。 このエントリでは、最初に unittest パッケージを使ってユニットテストを書く方法について紹介する。 その上で、さらに効率的にテストを記述するためにサードパーティ製のライブラリである pytest を使っていく。
機械学習Podcast「TWiML&AI」で先週取り上げられた可視化ライブラリ「Yellowbrick」が非常に便利だったので紹介します!ちなみにPodcastには作者の1人であるRebecca Bilbroさんが出演しているので興味持った方は是非聞いてみてください。 twimlai.com www.scikit-yb.org Yellowbrickとは 一言で言うと、機械学習に特化した可視化ライブラリです。実装的な面で言うと(こちらの方がわかりやすいかもしれません)、scikit-learnとmatplotlibをラップして、scikit-learnライクなAPIで使うことができるものです。 例えば相関行列のヒートマップをプロットしたい場合は次のように書くだけでグラフを作ることができます。 visualizer = Rank2D(features=features, algorithm=
複数言語をいったりきたりするので、久々にpythonを使うと度忘れしていることがたまにあります。そんな時、カンニングペーパー(チートシート)的に一か所にまとめたものがあると助かるなと思って(自分用に)まとめてみました。 目次 (1)スタイル (2)命名規則 (3)モジュール・パッケージ・import (4)初期化 (5)内包表記とジェネレータ (6)ループ・繰り返し処理 (7)データの取り出し・並び替えなど (8)条件式と比較演算子など (9)文字列の検索・置換・正規表現 (10)クラス定義と関数の引数 (11)例外 (12)ファイル読み書き・直列化 (12)スレッド・並列処理など (13)その他もろもろ (1)スタイル 他の言語と記憶が混同しやすいものだけ、とりあえず。 項目 説明 インデント TABではなく「空白4個」を使う クラス内のメソッド定義 1行あける 各行の長さ 80文字未満
機械学習の中でも古典的なテーマの一つである「時系列予測(時系列解析、時系列分析)」においては、昔からある「AR(Auto Regression:自己回帰)」モデルから最先端のディープラーニングを用いた「LSTM」(Long Short-Term Memory)までさまざまなアルゴリズムが存在しています。 それらの中でも近年注目を集めているのが、Facebookが開発した時系列予測のオープンソースソフトウェア(OSS)ライブラリ「Prophet」です。Python実装、R実装が公開されています。 本連載ではProphetの概要と理論的背景、案件で使ってみた経験から得られた知見を紹介します。「そもそもProphetとは何か」「他の手法との差異は何か」「チューニングのテクニック」「運用で気を付けるべき点」などを紹介しながら、Prophetへの理解を深めることを目的に、2回の連載を予定しています。
Mozillaは、WebブラウザでPythonインタプリタや数値計算ライブラリのNumPyなど、Pythonの標準的なデータサイエンス環境をほぼそのまま実行可能にする「Pyodide」(パイオダイドと発音されているようです)を開発中です。 Mozilla Hacksのブログに投稿された記事「Pyodide: Bringing the scientific Python stack to the browser」で、このPyodideの詳細と現状が報告されています。 Pyodideは、データサイエンス環境をWebブラウザ上で実現しようというMozillaのプロジェクト「Iodide(アイオダイド、と発音されているようです)の関連プロジェクト。 Pyodideの最大の特徴は、標準のPythonインタプリタのフル機能をWebブラウザ上で実現しようとしている点にあります。下記はブログから。 Pyo
Abstract Google スプレッドシートをpython用ライブラリgspreadを通して読み書きします.流れはよくまとまった記事に書かれている感じです. 下準備 全体的に先人の記事の劣化コピーです. APIの有効化 まずGoogle Developers Consoleで適当にプロジェクトを作成します(今回はtestとします).ダッシュボードからAPIとサービスの有効化をクリックしてGoogle Sheets APIを有効にしましょう. OAuth用クライアントIDの作成 「認証情報」→「新しいクライアントIDを作成」→「サービスアカウント」を選択して「クライアントIDを作成」しましょう.サービスアカウントが初めての場合は新しいサービスアカウントでサービスアカウント名を入力しましょう(役割はよくわからなかったのですが役割なしで作成できたので今回は役割なしでいきます).jsonファイ
今回はソケットプログラミングについて。 ソケットというのは Unix 系のシステムでネットワークを扱うとしたら、ほぼ必ずといっていいほど使われているもの。 ホスト間の通信やホスト内での IPC など、ネットワークを抽象化したインターフェースになっている。 そんな幅広く使われているソケットだけど、取り扱うときには色々なアーキテクチャパターンが考えられる。 また、比較的低レイヤーな部分なので、効率的に扱うためにはシステムコールなどの、割りと OS レベルに近い知識も必要になってくる。 ここらへんの話は、体系的に語られているドキュメントが少ないし、あっても鈍器のような本だったりする。 そこで、今回はそれらについてざっくりと見ていくことにした。 尚、今回はプログラミング言語として Python を使うけど、何もこれは特定の言語に限った話ではない。 どんな言語を使うにしても、あるいは表面上は抽象化さ
pandas GroupBy: Grouping Real World Data in Python In this course, you'll learn how to work adeptly with the pandas GroupBy while mastering ways to manipulate, transform, and summarize data. You'll work with real-world datasets and chain GroupBy methods together to get data into an output that suits your needs. Jul 23, 2024 intermediate data-science
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く