タグ

pythonと*dataに関するsh19910711のブックマーク (377)

  • JAX入門~高速なNumPyとして使いこなすためのチュートリアル~

    TensorFlow Advent Calendar 2020 10日目の記事です。空いてたので当日飛び入りで参加しました。 この記事では、TensorFlowの関連ライブラリである「JAX」について初歩的な使い方、ハマりどころ、GPU・TPUでの使い方や、画像処理への応用について解説します。 JAXとは https://github.com/google/jax Google製のライブラリで、AutogradとXLAからなる、機械学習のための数値計算ライブラリ。簡単に言うと「自動微分に特化した、GPUやTPUに対応した高速なNumPy」。NumPyとほとんど同じ感覚で書くことができます。自動微分については解説が多いので、この記事では単なる高速なNumPyの部分を中心に書いていきます。 関連記事 JAX Quickstart JAXで始めるディープラーニング JAX : Tutorials

    JAX入門~高速なNumPyとして使いこなすためのチュートリアル~
    sh19910711
    sh19910711 2025/06/14
    2020 / "非同期処理で計算されるため、計算の最後に.block_until_ready()を追加 / このまま使ってもJAX本来の性能を引き出せないので、jitでXLAコンパイル / メソッドを@jitとデコレーターで囲むか、jitでメソッド全体をラップ"
  • PyOsmiumを用いたOpenStreetMapデータ処理 - Qiita

    はじめに 記事はOpenStreetMapより取得したデータを処理するライブラリの1つであるPyOsmiumについて、その基的な使用法及び概念についてまとめたものです。 ご意見等ありましたらどうぞよろしくお願いいたします。 OpenStreetMapとは OpenStreetMap(OSM)は、世界中の人々による共同作業で作られた、自由に利用・編集可能な世界地図プロジェクトです。オープンソースの地図データが公開されており地図のスタイルは柔軟に変更可能です(様々なスタイルの例)。現在、多くのサイト(例:Yahooマップ)で活用されています。 ライセンス・クレジット表記 OSMはライセンスとしてOpen Database License (ODbL)を使用しています(参考1, 参考2)。そして、OSMを公に使用する場合にはガイドラインに従って以下の2条件を守る必要があります(引用元)。 ・

    sh19910711
    sh19910711 2025/06/11
    2024 / "PyOsmium: C++ ライブラリであるOsmiumのラッパー + OSMデータを処理 / PyrosmはPyOsmiumに比べ、ライブラリ単体でできることが多い(データのダウンロード、図示)一方で、メモリ効率はPyOsmiumのほうが良い"
  • 同期現象の数理モデルをPythonで実装してみた - ENGINEERING BLOG ドコモ開発者ブログ

    はじめに 記事をご覧いただきありがとうございます。ドコモアドベントカレンダー8日目の記事になります。初めまして。NTTドコモR&D戦略部新入社員の武田です。業務では主に弊社の先進技術を活用したメタコミュニケーションサービス「MetaMe®」(メタミー)の技術実装を担当しています。 私は学生時代、人々の動きや行動パターンを実データから分析し、災害時の安心・安全な避難を実現するためのシミュレーションや最適化に関する研究に従事しておりました。現在仮想空間内においても「ユーザの流れ」や「ユーザの行動」に注目し、技術実装を行っています。群衆の動きに関するサーベイを進める中で、「同期現象」に関する論文を目にし、その仕組みに強く興味を持ちました。 そこで記事では、「同期現象」を数理モデルで表現した2種類のモデルをとりあげ、Pythonを用いた実装を通して、その仕組みをより深く理解することに挑戦します

    同期現象の数理モデルをPythonで実装してみた - ENGINEERING BLOG ドコモ開発者ブログ
    sh19910711
    sh19910711 2025/06/11
    2024 / "同期現象: 周囲の影響を受けながら、徐々に足並みが揃う + バラバラだった拍手が、気がつくと会場全体で揃っている / 蔵本モデル: 振動する個体(振動子)が互いに影響を与え合いながらリズムを揃えていく過程"
  • Apache Arrow の紹介 - GO Tech Blog

    タクシーアプリ『GO』のデータエンジニアをしている牧瀬です。 Apache Arrow という OSS を知り、弊社でも活用できる機会があるのではないかと興味を持ちました。記事では Apache Arrow の概要を紹介します。 概要 Apache Arrow とは、インメモリのカラムナーフォーマット仕様および、それを操作するための各種プログラミング言語用のライブラリ実装です。 Apache Arrow が作られた目的は、大きなデータセットを高速に処理したり、データセットを異なるシステムやプログラミング言語の間で効率的にやりとりするためです。 なぜインメモリ? 一般的なカラムナーフォーマットの多くはストレージに保存する際のフォーマットですが、Apache Arrow はインメモリの仕様も定められています。 これは 1台のマシン上で異なる言語やプロセスの間でデータをやり取りする際、シリアラ

    Apache Arrow の紹介 - GO Tech Blog
    sh19910711
    sh19910711 2025/06/11
    2023 / "PyArrow: pandas で言えば Series にあたるものが Array/ChunkedArray、DataFrame にあたるものが RecordBatch/Table + immutable なデータ型"
  • hypothesis+panderaで始める、データフレームに対するProperty Based Testing - Sansan Tech Blog

    技術部 R&D研究員の前嶋です。梅雨の季節ですが、少しでも快適に過ごせるようにOnのCloud 5 wpを購入しました。水に強くて軽快な履き心地で最高ですね。(追記:この記事の公開作業をしている間に梅雨が終わってしまいました) 今回は、データフレームのテストについての記事です。 データフレームのテストをどう書くか データが中心となるサービスのネックになるのが テストをどう書くか です。というのも、データフレームは行×列の構造になっているため、入力あるいは出力値がデータフレームになるような関数が多いプログラムでは、テストケースを書くのが非常に面倒です。仕様の変更があった場合、それぞれのテスト用の疑似データに修正を加えることを考えると、より簡潔にデータフレームのバリデーションをする方法が欲しいところです。実は、データフレームのテストはProperty Based Testingという考え方と

    hypothesis+panderaで始める、データフレームに対するProperty Based Testing - Sansan Tech Blog
    sh19910711
    sh19910711 2025/06/11
    2022 / "データフレームのテスト / Property Based Testing(PBT) は、Haskellの QuickCheck で導入された概念だと言われ / 契約による設計(Design by Contract, DbC)を実現するテスト手法として、名著『達人プログラマー』でも推奨"
  • ベクトルタイル (Mapbox Vector Tile) をPythonで自力で生成してみる - Qiita

    ベクトル地図タイルのデファクトスタンダード形式である Mapbox Vector Tile (MVT) のデータを試しに自力で生成してみたので、その要点を解説してみます。「自力で生成」というのは、MVTの実体である Protocol Buffers のデータを組み立てるところからフルスクラッチでやってみようという意味です。 最終的に上図のようなポリゴンを含むベクトルタイルを生成して配信できました。サンプルコードではPythonを使って以下のようなことを行っています。 (GeoJSONのデータをもとに)大量のポリゴンを含むMVTを自分で組み立てて生成する。各地物には属性情報も付与する。 現在時刻などの赤い文字列の部分もLineStringsで動的に描く。 PythonFastAPIで配信する。 サンプルコードのリポジトリは以下です: まず前提として: 多くのユースケースでは tippeca

    sh19910711
    sh19910711 2025/05/31
    2023 / "一部のデータベースエンジンにはMVTを動的に生成する機能が実装 / MVTを動的に生成したい場合はこれらに任せるのが手軽 / 簡単な生成処理を実装をしてみて周辺の仕組みを理解するのも楽しい"
  • BigQuery Python UDF 完全に理解した

    マイベスト データエンジニアの snhryt です。 先月頭に、BigQueryにユーザー定義関数 (UDF) をPythonで書ける機能がプレビュー版でやってきました🎉 少し時間が空いてしまいましたが、自分でもいろいろ触って完全に理解した[1]ので、体験記をまとめます。

    BigQuery Python UDF 完全に理解した
    sh19910711
    sh19910711 2025/05/14
    "レコード数の多寡に依らず一定のボラがあり、レコード数が増えるとそれが10数秒レベルになる / Python UDFではキャッシュが効かない旨がばっちり公式ドキュメントでも言及"
  • GIS × Python Tutorial 6.2 ~ DTMの作成 ~

    この記事は「GIS × Python Tutorial」の関連記事です。 はじめに 前回の記事ではLidarで取得した、点群データの読み書きや外れ値処理を、"PDAL" というライブラリーで行いました。環境構築に関しても前回の記事を参照してください。 この記事では、点群データから "DTM" の作成を行いますが、その為に必要な関連知識についてもまとめています。 今回使用するデータ Raster DTM(Digital Terrain Model)とは CSF(Cloth Simulation Filter)による点群分類 データのイメージ 計測データの反転 クロスシュミレーション CSFの詳細 Grid Particleの作成 CPを探す 外力による変位 内力による変位 点群分類 実データでの検証 サンプルの切り抜き サンプル範囲の選定 データの切り抜き パラメーターの変更による結果への影

    GIS × Python Tutorial 6.2 ~ DTMの作成 ~
    sh19910711
    sh19910711 2025/05/13
    2024 / "CSF(Cloth Simulation Filter) を使用して「地表点か、それ以外か」を分類 / クラスを分ける事で、DTM や DSM を作成する事が出来ますし、その間にある点群は内部の構造を表している"
  • IcebergテーブルをDuckDBで手軽に読み取ろう

    はじめに データエンジニアをやっておりますTaichiです。 最近Apache Icebergという単語をよく耳にするようになりました。 Icebergの処理エンジンといえば Apache Spark Apache Flink Trino などでしょうか。このラインナップ、構築/運用するのは結構ハードなものが多いと思いませんか? 例えば、私のプロジェクトではSparkを使った構成でデータ処理を実施していますが、以下のような具体的な課題に直面しました。 Apache Hadoopのクラスタ構築作業や、Sparkを動かすために専用の記述(PySpark)が必要になる等、一定の学習が必要。 PySparkの記述の仕方によっては、性能が全然出ずにレスポンスが返ってこなかったり、OutOfMemoryになる場合があり、かつ解析やチューニングの難易度が高い。 クラウド前提であれば、マネージドHadoo

    IcebergテーブルをDuckDBで手軽に読み取ろう
    sh19910711
    sh19910711 2025/05/11
    "S3 Tables/Glue Data Catalogに関しては、現在プレビュー中ではありますがDuckDBにIcebergCatalogとしてマウントが可能になっています。これにより、テーブルのList等の操作ができる"
  • 【FastAPI+MySQL】alembicでマイグレーションファイルを自動生成して実行する

    はじめに alembicSQLAlchemyの著者によって作成されたデータベースマイグレーションツールです。PythonのWebフレームワークであるFastAPIDBのマイグレーションの仕組みを持っていないため、DBのマイグレーションをするためにalembicを使います。 alembicはマイグレーションファイルを自分で書く方法のほかに、テーブル定義の変更を自動で読み取ってマイグレーションファイルを自動生成することができます。とても便利な機能なのですが、実際にやってみようとしたところ苦戦したので、備忘録として残しておきます。 環境 MySQL 5.7 Python 3.9.13 alembic 1.8.1 fastapi 0.79.0 PyMySQL 1.0.2 SQLAlchemy 1.4.39 uvicorn 0.18.2 ディレクトリ構成 alembicに関係があるところだけ抜粋

    【FastAPI+MySQL】alembicでマイグレーションファイルを自動生成して実行する
    sh19910711
    sh19910711 2025/05/08
    2022 / "alembic: SQLAlchemyの著者によって作成されたデータベースマイグレーションツール / テーブル定義の変更を自動で読み取ってマイグレーションファイルを自動生成する"
  • NumPyro について、確率モデルを扱いたい理由を再確認したあとに動かしてみる

    この記事はTensorFlow Advent Calendar 2020の6日目の記事です。 概要 この記事では NumPyro について扱います。NumPyro は確率的プログラミングを行うためのフレームワークの1つで、バックエンドに JAX を使っていることが特徴的です。この時点で次のような疑問が生まれるでしょう。 そもそもなんで確率なの?サイコロを投げるの? 確率的プログラミングとは? JAXって? これにできる限り真正面から答えようというのがこの記事の目的です。まず確率モデルを導入する理由について述べます。次に、確率的プログラミングが扱う課題について述べます。その後、 NumPyro に関係する技術である Pyro や JAX について確認したあとに NumPyro について触れます。 このような構成のため、それぞれの構成要素について深くは触れません。また、ベイズ推論や機械学習に関

    NumPyro について、確率モデルを扱いたい理由を再確認したあとに動かしてみる
    sh19910711
    sh19910711 2025/05/08
    2020 / "NumPyro が登場した背景について / NumPyro: HMM の実行において、Pyro と比較して 340 倍、Stan と比較して 6倍の高速に実行"
  • pyannote.audioとOpenSearchで類似話者検索を試す - Qiita

    はじめに 朝日新聞社メディア研究開発センターの嘉田です。 最近類似話者検索を実現するために、OpenSearchのベクトル検索機能を利用して実験を行いました。音声データから抽出した話者の埋め込みベクトルを活用し、クエリとなる話者に近い既存の話者を特定します。 記事では、類似話者検索の流れを解説するとともに、OpenSearchのベクトル検索を利用する上で確認しておくとよいことをご紹介します。 ※ベクトル検索の技術説明、ベクトルデータベース比較、各アルゴリズムの技術説明は行いません。 類似話者検索の仕組み 筆者のケースでは、話者分離後の各話者に対して類似話者を検索するというフローを想定しました。そのため、既存の話者分離フローと組み合わせて次のプロセスで実現を目指しました。 1. 話者分離と話者の埋め込みベクトル生成 話者分離にはpyannote.audioというフレームワークを使用していま

    sh19910711
    sh19910711 2025/05/05
    2024 / "音声データから抽出した話者の埋め込みベクトルを活用し、クエリとなる話者に近い既存の話者を特定 / 話者分離にはpyannote.audioというフレームワークを使用"
  • Zスコアの基礎と応用:データ分析での活用とPython実装方法

    Zスコアはデータ分析において、多くのシーンで利用される重要な指標です。以下では、より読みやすくなるようにZスコアの説明を行い、具体的な業務での活用例、他の統計処理との比較を交えながら解説します。 Zスコアの基 Zスコアとは? Zスコアは、データの分布に基づいて、あるデータ点が平均からどれだけ離れているかを標準偏差(データの散らばり具合を表す指標)の単位で示すものです。 例えば、Zスコアが1の場合、平均から1標準偏差だけ離れていることを意味し、同様にZスコアが-2の場合、平均より2標準偏差だけ下の位置にあることを示します。 これにより、データポイントがデータ全体の中で相対的にどのような位置にあるかを理解でき、特異なデータや異常な値の発見、データの標準化に役立ちます。 Zスコアの計算式 Zスコアを求める公式は次のようになります。 Z = \frac{X - \text{平均値}}{\text

    Zスコアの基礎と応用:データ分析での活用とPython実装方法
    sh19910711
    sh19910711 2025/05/04
    2024 / "Zスコア: 分布に基づいて、あるデータ点が平均からどれだけ離れているかを標準偏差(データの散らばり具合を表す指標)の単位で示す / Zスコアが1の場合、平均から1標準偏差だけ離れている"
  • ロジスティック回帰 (勾配降下法 / 確率的勾配降下法) を可視化する - StatsFragments

    いつの間にかシリーズ化して、今回はロジスティック回帰をやる。自分は行列計算ができないクラスタ所属なので、入力が3次元以上 / 出力が多クラスになるとちょっときつい。教科書を読んでいるときはなんかわかった感じになるんだが、式とか字面を追ってるだけだからな、、、やっぱり自分で手を動かさないとダメだ。 また、ちょっとした事情により今回は Python でやりたい。Python のわかりやすい実装ないんかな?と探していたら 以下の ipyton notebook を見つけた。 http://nbviewer.ipython.org/gist/mitmul/9283713 こちらのリンク先に2クラス/多クラスのロジスティック回帰 (確率的勾配降下法) のサンプルがある。ありがたいことです。理論的な説明も書いてあるので ロジスティック回帰って何?という方は上を読んでください (放り投げ)。 この記事で

    ロジスティック回帰 (勾配降下法 / 確率的勾配降下法) を可視化する - StatsFragments
    sh19910711
    sh19910711 2025/05/01
    2014 / "SGD: 入力をランダムに (確率的に) 並べ替えて、データ一行ずつから勾配を求めて係数/バイアスを更新 / 各クラスを分割する位置に少しずつ回帰直線が寄っていく"
  • ガウス過程回帰とGPyのメモ

    はじめに Kindle の日替わりセールで買って積読になっていた『ガウス過程と機械学習』を読んだので,ガウス過程回帰について整理し,GPy で試してみました.この記事の内容は『ガウス過程と機械学習』の 2-4 章に対応しています. ガウス過程回帰とは回帰分析手法の一種で,非線形な関数関係を表すことができます.ガウス過程回帰ではカーネル関数と呼ばれる類似度を表す関数を設定しますが,このカーネル関数を変えることで無限回微分可能な滑らかな関数やブラウン運動,周期性など様々なものを扱えます. ガウス分布 平均 \mu,分散 \sigma ^2 のガウス分布の確率密度関数は, \mathcal{N}\left(x | \mu, \sigma^2\right)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{(x-\mu)^2}{2 \sigma^2}\

    ガウス過程回帰とGPyのメモ
    sh19910711
    sh19910711 2025/04/29
    2023 / "ガウス過程回帰: 非線形な関数関係を表す + カーネル関数と呼ばれる類似度を表す関数を設定 / 『ガウス過程と機械学習』は非常にわかりやすく楽しかった"
  • Polars, DuckDBのデータソースの違いによる性能比較

    この記事は毎週必ず記事がでるテックブログ Loglass Tech Blog Sprint の62週目の記事です! 2年間連続達成まで残り44週となりました! ログラスの龍島(@hryushm)です。寒くなってきましたね。最近は鴨肉を焼くのがマイブームです。ということで今日はPolarsとDuckDBの話です。 PolarsとDuckDBは、近年注目を集めているデータ処理のための高速なクエリエンジンです。それぞれ異なる強みを持っていますが、どちらもシングルノードでOLAPの分析処理を非常に高速に実行できるという共通点があります。この記事では、データソースにPostgreSQLを用いた場合において、PolarsとDuckDBのパフォーマンスにどのような違いが現れるのかについて比較します。 Polarsとは Polarsは、Rustで実装されたデータフレームライブラリで、特にパフォーマンスに優

    Polars, DuckDBのデータソースの違いによる性能比較
    sh19910711
    sh19910711 2025/04/24
    2024 / "PolarsとDuckDBのベンチマーク比較は多く行われていますが、対象データの性質やクエリの内容によるというのが正直なところ / 共通するのはよく比較対象となるPandasよりは圧倒的に速い"
  • ニューラルネットワークの可視化ライブラリを作ってみた【PyPIリリース】 - Qiita

    import torch.nn as nn class SimpleModel(nn.Module): def __init__(self): super(SimpleModel, self).__init__() self.model = nn.Sequential( ...略... nn.Linear(5, 5), ...略... ) def forward(self, x): return self.model(x) で記述されるニューラルネットワーク中の全結合層部分(5ユニット→5ユニット)の重みが学習過程でどのように変化しているかを以下のような.htmlファイルを生成してブラウザ上からアニメーションを確認できたりするものになります。特に別個で環境を作らずとも生成された1つのhtmlファイルだけがあれば結果を確認できるところが特徴です。 PyPIリリースに伴う手続きのハードルは思っ

    ニューラルネットワークの可視化ライブラリを作ってみた【PyPIリリース】 - Qiita
    sh19910711
    sh19910711 2025/04/22
    "全結合層部分(5ユニット→5ユニット)の重みが学習過程でどのように変化しているか / 点(ノード)は全結合層のユニット、ネットワークの線(エッジ)は全結合重みに対応しており、線の太さが重みの絶対値と対応"
  • Streamlitを使って、スプレッドシートをバックエンドにした社内運用できるデータアプリを作る手順

    記事では、Streamlitを使ってスプレッドシートをバックエンドにした社内運用できるデータアプリを構築する手順をご紹介します。Streamlitがどのようなケースに相性が良いのかという点についても掘り下げてご紹介します。 前回の記事では、スプレッドシートをバックエンドにしたデータアプリを構築する複数の方法をご紹介しました。今回は、そのときに紹介したコードベースのフレームワークの1つ、Streamlitを取り上げて、社内運用するためのデータアプリの構築手順を説明したいと思います。 前回の記事はこちらです。 具体的なアプリの構築手順 Google Cloud / Google Sheet側の設定 1. Google Sheet APIを有効にする Google Developers Consoleにログインし、新規プロジェクトを作成、Google Sheets APIを有効化してください。

    Streamlitを使って、スプレッドシートをバックエンドにした社内運用できるデータアプリを作る手順
    sh19910711
    sh19910711 2025/04/19
    "Streamlit: バージョン1.42.0からOpenID Connect(OIDC)によるユーザー認証機能が追加 / デプロイ先をMorphにすることで、Morphのビルトインの認証機能がStreamlitアプリに適用"
  • データドリフトの検知に、Evidently を使ってみた

    はじめに 機械学習モデルに入力するデータの移り変わりを検出する「データドリフト」について、実際にどのように検知できるのかアウトプットのイメージを確認したかったため、実行してみました。 さまざまなPythonライブラリがありますが、見た目が気に入ったEvidentlyを使ってみることに! データドリフト検知のライブラリの比較10選 ライブラリ名 特徴・用途 GitHubスター数 最新更新日

    データドリフトの検知に、Evidently を使ってみた
    sh19910711
    sh19910711 2025/03/07
    2024 / "データドリフト検知のライブラリの比較10選 / Evidentlyは視覚的なレポート生成が得意であり、Alibi Detectは異常検知に特化 / Evidently: テキスト、表形式データ、埋め込みのデータ品質とデータドリフトを監視"
  • tqdmがpandasのapplyで便利になっていました(モンキーパッチの実戦例)

    こんにちは、沙代です。 pandasのapplyでスマートに済まそうと思ったら、思ったより時間がかかって進捗がわからずドギマギすることって、ありますよね。 pandas, tqdm(プログレスバーを表示するためのパッケージ)が便利になっていたので、コードを覗いてみようと思います。 環境 MacOS Montery 12.6.2 (M1 Pro) Python 3.11.1 pandas 2.2.3 tqdm 4.66.5 コード例 tqdm.pandas()と.progress_applyを使います。 progress_applyの使い方は、applyとほぼ同じです。 import pandas as pd import numpy as np import time from tqdm import tqdm df = pd.DataFrame(np.random.randint(0,

    tqdmがpandasのapplyで便利になっていました(モンキーパッチの実戦例)
    sh19910711
    sh19910711 2025/03/01
    2024 / "tqdm.pandas: df.applyに渡される関数がスマートにwrap"