※あくまでもイメージです(適当) 仕事じゃなくて、趣味の方の野球統計モデルで詰まった時にやったメモ的なやつです.*1 一言で言うと、 約19万レコード(110MBちょい)のCSVの統計処理を70秒から4秒に縮めました. # 最初のコード $ time python run_expectancy.py events-2018.csv RUNS_ROI outs 0 1 2 runner 0_000 0.49 0.26 0.10 1_001 1.43 1.00 0.35 2_010 1.13 0.68 0.32 3_011 1.94 1.36 0.57 4_100 0.87 0.53 0.22 5_101 1.79 1.21 0.50 6_110 1.42 0.93 0.44 7_111 2.35 1.47 0.77 python run_expectancy.py events-2018.c
こういうことやぞ サムネイルで描いた事がこのエントリーの全てです. Pythonでは、「pandas」というライブラリを使ってデータ分析や解析をすることが非常に多いです. でも、「利用方法(またはユースケース)」に合わせた入門ってあんまりない気がします. ということで、「PyCon mini Sapporo 2019」でそんな話をしてきました. sapporo.pycon.jp 訳あって資料およびJupyter notebookは非公開*1ですが、こちらにその基本とかをまとめます. TL;DR - このエントリーは 実務や趣味のデータ分析でpandasを使う例を紹介します. 初歩的な使い方から中級者になるまでのヒントになると思います. なお,統計テクニック・機械学習には触れません・やりません. なお、対象読者は「そこそこPythonとJupyter notebookが使えてこれからデータ分
機械学習, データサイエンスを志向してPythonを勉強したり,この辺のエントリーで本を読み漁ったりすると*1, もしかして, 私の仕事ってプログラミングで楽になるのでは!? と気がつく(もしくはそういう記事・本を読んで触発される)瞬間があるかと思います, この本とかあの本とか. このエントリーではそんな素晴らしい学び*2に対して,一つの回答を示してみたいと思います. TL;DR(ここは読んでほしい) プログラミングで解決できる「退屈なこと」とは「回数が多く, 属人性が少ない」作業のことである. 属人性がある仕事はプログラミングをする前に因数分解しよう or 「仕事ごっこ」だったらやめる努力をしよう. Pythonで「退屈なこと」をやるなら,「退屈なことはPythonにやらせよう」もいいですが,「できる仕事がはかどるPython自動処理 全部入り。」が個人的にはおすすめです. 言いたいこと
namedtupleの解説記事です。 この記事の想定読者 namedtupleの基本を知りたい人 namedtupleの存在意義がよく分からない人 namedtupleの活用場面を知りたい人 そこそこ多量のデータを上手に管理する方法を探している人 【2019年10月4日追記】 結構な数のいいねをいただいたため、きちんとした記事にしなければと改めて思っております。 見直しますと、typing.NamedTupleの利用方法など、重要な情報が不足していると思いましたので(執筆当時の知識不足によります。申し訳ありません)、本日追記して記述を補いました。 はじめに あまりメジャーではないかもしれませんが、pythonにはnamedtupleというデータ型があります。標準ライブラリのcollectionsモジュールからインポートできます。 私自身はnamedtupleに関しては、 dictionar
はじめまして。株式会社GA technologies のService Development Division (開発部門) エンジニアの永冶といいます。 今後、この技術ブログを通して様々なことをアウトプットし、記事を閲覧する方の力に少しでもなれたらと思います。よろしくお願いします。 この記事を書いた経緯 弊社ではAWS Lambdaを 画像の圧縮 Slackへの通知 外部サービスとの連携 などで幅広く使用しています。数多くのLambda関数を管理する上で、設定の可視化とデプロイの自動化は避けては通れません。設定の可視化とデプロイの自動化を達成するために、弊社のいくつかのプロジェクトではserverless frameworkを使用しています。 社内で運用を続けていく上で、serverless frameworkを使用する時のオススメの設定やプラグインが洗練されてきました。 この記事を読
検索エンジンを何故作ってみたかったか もともとこのブログのコンセプトのNLP的なことで、情報を整理してなにか便利にしたかった(Googleと同じモチベーションの世界の情報を整理する) 4年前にほぼ同じシステムを作ろうとしたとき、500万を超える大量のインデックスを検索するシステムは、数学的な理解度が十分でない+エンジニアリング力が伴わないなどでギブアップした背景があり、今回再チャレンジしたくなった ほぼすべての機能をpure python(+いくつかの例外はある)で実装して、世の中の ソフトウェアを使うだけ の検索エンジンをやってみたなどではなく、実際に理解して組んでみることを目的としたかった 依存パッケージと依存ソフトウェア GitHubのコードを参照してください 様々なサイトを巡回する必要があり、requestsが文字コードの推論を高確率で失敗するので、nkf をlinux環境で入れて
pandas でそこそこ大きいデータを扱う場合、その処理速度が気になってくる。公式ドキュメントではパフォーマンス向上のために Cython や Numba を使う方法を記載している。 Enhancing Performance — pandas 0.16.2 documentation が、軽く試したいだけなのに わざわざ Cythonや Numba を使うのは手間だし、かといってあまりに遅いのも嫌だ。そんなとき、pandas 本来のパフォーマンスをできるだけ維持するためのポイントを整理したい。 pandas に限らず、パフォーマンス改善の際にはボトルネックの箇所によってとるべき対策は異なる。pandas では速度向上/エッジケース処理のために データの型や条件によって内部で処理を細かく分けており、常にこうすれば速くなる! という方法を出すのは難しい。以下はこの前提のうえで、内部実装からみ
(Background image by Pixabay) 最近また「データ分析をやるならRとPythonのどちらでやるべきか」という話題が出ていたようです。 言語仕様やその他の使い勝手という点では、大体この記事に書いてあることを参考にすれば良いと思います。その上で、人には当然ながら趣味嗜好がありますので、個々人が好みだと思う方を使えば良い話ではあります。 とは言え、僕自身もクソコードの羅列ながらこのブログにR & Pythonのコードを載せているということもあるので、便乗して今回の記事では僕個人の意見と感想も書いてみようと思います。いつもながらど素人の意見(特にPythonは本業ではない)なのと、自分がメインに使っているRでもtidyverseをほとんど使わないなど割とout-of-dateな使い方をしているということもあり、読んでいておかしなところなどあればどしどしご指摘くださると有難
WEB+DB PRESS Vol.110 目次 目次 はじめに gRPCとは? gPRCの特徴 Protocol buffersでRPCを定義することで、様々な言語のサーバ・クライアント実装が自動生成可能 通信プロトコルにHTTP/2を使うことで高速化、双方向通信、streaming等を実現 通信のデータ量が小さく、データ解釈時の計算時間も短い ProtoファイルでのRPCの宣言 Unary RPC Server streaming RPC Client streaming RPC Bidirectional streaming RPC gRPCのサンプルコード Python Unary RPC Server streaming RPC Client streaming RPC Bidirectional streaming RPC gPRCのgの意味 参考資料 MyEnigma Supp
Python の可視化ライブラリである Seaborn を利用して表現豊かなグラフを生成するためのテクニックを紹介する記事です。グラフの選択基準としてデータを構成する値が分類のある値かそれとも連続値であるかに注目しており、この記事を通して実践的なテクニックを身につけることができます。 可視化は素晴らしいものです。ですが、優れた可視化の実現は悩ましく容易ではありません。 また、大勢に対して優れた可視化をプレゼンするような場合には時間と労力がかかりますよね。 私たちは棒グラフ、散布図、ヒストグラムの作り方についてはよく知っていますが、それらを美しくすることに対してはそこまでの注意を払っていません。 このことは同僚やマネージャーからの信頼に影響します。今あなたがそれを感じることはありませんが、それは起こることです。 さらに、私はコードの再利用が重要であることを知っています。新しいデータセットに触
はじめに どうも、30過ぎて情シスから機械学習エンジニアに転身するという割と変態的なキャリアを形成しているものです。 これまでの自分の反省も元にどう勉強してきたか振り返ってみたいと思います。 もともと理系出身ですし、IT業界の経験自体はあるので完全未経験というわけでもないので、理系の情報系の学生さんとか、大学卒業してあまり年数が経たない社会人の方であれば参考になる部分があるのではと思います。 基本スペック 年齢…32 学歴…理系大学院修士修了。物理系(大学初年度の線形代数、微分積分、確率統計ならギリギリなんとかなる。Python機械学習プログラミングやはじめてのパターン認識を見て数式でつまづくことはほとんどない。) これまでのキャリア…ERPのパッケージ開発1.75年(Javaなど)→ネットワークエンジニア1.75年(ツール作成程度にPython)→社内SE3年(社内システムの企画/保守。
2019年5月27日追記:この記事のオチに使われている事態は修正された模様です。その点をご勘案の上、お読みください。 小学生では「プログラミング的思考」が導入される新学習指導要領ですが、高等学校では更に進みます。 高等学校においては、情報科において共通必履修科目「情報Ⅰ」を新設し、全ての生徒がプログラミングのほか、ネットワーク(情報セキュリティを含む)やデータベースの基礎等について学習 文科省の資料より 教育新聞の記事によれば、 情報科は現在、「社会と情報」か「情報の科学」を選択することになっている。全国的に、プログラミングが学習内容にない「社会と情報」のみを開設している学校が多く、情報科の専任教員を配置せずに他教科の教員が兼任で受け持つケースも少なくない となっていますが、新学習指導要領では、「情報Ⅰ」は必修になるので、全ての学校で指導されるはず。 そして、教員用の研修教材として文科省が
「最短コースでわかる ディープラーニングの数学」「身近な数学」を読む GW(ゴールデンウィーク)中は日経BPさんから献本いただいた「最短コースでわかる ディープラーニングの数学」(以降ディープラーニングの数学)と、ほけきよ(id:imslotter)さんから献本いただいた「身近な数学」と数学と名のつく本2冊をじっくり読みました。 全然違う繋がりで献本いただいた両本ですが、奇しくも同じ「数学」というキーワードがタイトルにあるということで、大胆にもまとめて書評を書いてみたいと思います(笑) また、両者とも付録として、内容の理解を深めるためのPythonコードがGitHubで公開されているのですが「Google Colaboratory」(以降Google Colab)を使うことで、Python環境を構築することなく、手軽にコードを実行できることが分かったので、その活用方法も合わせて紹介しようと
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こちらの記事は6 things I’ve learned in my first 6 months using serverlessの和訳になります。 サーバーレスの世界は適切なツールさえ見つければミドルレイヤーを省けるのでとても良いものです。 10月に行われたServerlessconfの後、自分の会社を全てサーバーレスにすることに決めました。最初の2ヶ月は Python Flask appにLambdaを導入するのに必死でしたが、そのおかげでより良い方法を思いつきました。 そして6ヶ月後、私たちにとって4番目に大きいプロジェクトをサ
0. はじめに AtCoderなどでは、グラフを扱った問題が多く出るが、その度に一から実装していると時間が掛かりすぎてしまうため、有名なものをあらかじめ持っておく必要がありそう。そこで、Pythonを用いて、ダイクストラ法、ベルマンフォード法、プリム法、クラスカル法、ワーシャルフロイド法を実装した。 コメント、意見等ある方は是非! お待ちしてます! 1. ダイクストラ法 1.1. ダイクストラ法(defaultdictで実装) defaultdictで実装すると、リストで実装するよりも、ノード数$N$が大きい際には高速に動作する。ただし、経路復元の関数は、うまく書けなかった......。 (2019/7/6 追記)結局できました。1.1.1. を参照してください。 import collections import heapq class Dijkstra: def __init__(se
By Pythonistas at Netflix, coordinated by Amjith Ramanujam and edited by Ellen Livengood As many of us prepare to go to PyCon, we wanted to share a sampling of how Python is used at Netflix. We use Python through the full content lifecycle, from deciding which content to fund all the way to operating the CDN that serves the final video to 148 million members. We use and contribute to many open-sou
工場を想定した事例をPythonで画像認識 今回は「工場の制御機器で使われているPLC(シーケンサ)」+「画像認識+測定」含めた事例を想定してPythonで制御してみます。 想定しているイメージとしては下記です。「PLC(シーケンサ)で工場内の機器を操作する」+「製品を画像認識で測定する」工程をまとめて管理したいと思います 但し、工場の制御機器におけるPLC(シーケンサ)に関しては「ラダー」という特殊なプログラミング言語で書かれていることが大半でPythonでは直接プログラムできません。 そのためPLC(シーケンサ)自身にはそのままのラダープログラムで動いてもらいます。ラダーの箇所(製造工程)が終わったらGPIO経由でPythonに通知して画像認識(測定工程)を行います Pythonへの通知方法はGPIOでなくても何でも構いません(筆者が使いやすかっただけです)。 Python側はPLCか
こんにちは。しもじです。 今回は以前からずっと気になっていたPython開発環境、JupyterLabをインストールしてみたので、ご報告したいと思います。 JupyterLabとは? Pythonをお使いの方で Jupyter Notebook をご利用の方もいらっしゃると思います。 起動するとwebページ中でノートを記述するようにコードを残すことができ、実行結果と合わせて1ファイルとしてシェア可能なので便利です。 Amazon SageMakerでも利用されています。 Jupyter Notebook Jupyter Notebookを開発、提供しているProject Jupyterが次世代版Jupyter Notebookとして開発しているのがJupyterLabです。 JupyterLab changelogによると、現在v1.0.0へのリリースに向けて作業が進んでいるようです。また
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く