出典:日経クロステック、2021年7月7日 (記事は執筆時の情報に基づいており、現在では異なる場合があります) DX(デジタルトランスフォーメーション)を推進するため、新規システムの開発が盛んだ。従来の会計や販売、生産管理といった基幹系システムだけでなく、データ分析やAI(人工知能)システムなどの開発に着手する企業が増えている。 こうした新規システムの開発を進めるには、従来の基幹系システムとは異なる開発体制が求められる。システムに合わせて開発チームを構成し、開発対象のシステムに合ったプログラミング言語を選ぶ必要がある。プログラミング言語によって向いているシステム、または向いていないシステムがあるからだ。 現在のITエンジニアは開発対象に応じて利用する言語を増やしたり、場合によっては切り替えたりすることが求められる。では今、ITエンジニアが利用するプログラミング言語や開発環境は何か。これを調
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? UUIDは重複しないIDを生成する手段として便利ですが、特にversion4(乱数によるUUID)を利用する場合は一意性を得るのと同時に乱雑さも得ることになりますので、UUIDに順序性を求めることができません。 UUID - Wikipedia https://ja.wikipedia.org/wiki/UUID UUID(Universally Unique Identifier)とは、ソフトウェア上でオブジェクトを一意に識別するための識別子である。UUIDは128ビットの数値だが、十六進法による550e8400-e29b-41d4-
SARS-COV-2関連情報を集めていると、国や自治体、企業が公開している情報がPDFなのにムカついてしまう。ExcelをPDF化したものもあって、素直にxlsも出せよと思う。 (それでも画像データで公開している組織に比べればかなりマシなのが悲しい) 例えば、沖縄県のワクチン接種率の情報がPDFだ。「沖縄県のワクチン接種進捗状況/沖縄県」に掲載されている「県内市町村ごとの新型コロナワクチン接種件数」がPDFだ。タイトルは .xlsx になっているので、元々はExcelであったのだろう。 ご丁寧なことに情報が更新されると過去のPDFが消されてしまうので、接種率の変化を追っかけたい場合はPDFを手元に保存しておかないといけない。沖縄県の情報公開はこういうところがダメダメだと思う。消すなよ。 表から情報を抜き出す情報を抜き出すツールとしては adobeの【無料】PDFをExcelに変換 – Ad
はじめに Pythonでキチンと型アノテーションを書くのであれば一度は読んでおきたいのがtypingライブラリの公式ドキュメントです。 前回の記事でも読んでくださいと(偉そうに)書いたわけですが、実のところこれは型アノテーションを解釈する側1に向けたドキュメントだったりもするのでアノテを書く側にとっては情報がごちゃごちゃしてるんですよね。加えて未翻訳の箇所もそれなりにあってま~~~~読みにくい。実際に読んでいただいた方々からの評判もすこぶる悪かったです。また 機能は分かったけど結局どんな時に使えばいいのか分からない という致命的なコメントも聞きました。 そこで今回はこれらの不満を解消すべく、公式ドキュメントを一般ユーザー向けに再編し具体的なユースケースを盛り込んだ非公式ドキュメントをご用意しました。 なおPython 3.10は2021年10月04日リリース予定ですが、先駆けてドキュメント
東京大学は6月15日、一般的なデジタルカメラの画像から、鉢植え植物の3次元データを高精度に自動測定するPythonパッケージ(EasyDCP:Easy Dense Cloud Phenotyping)を開発し、公開したと発表した。 EasyDCPを利用した測定の大まかな流れ 資料:東京大学 同大学によると、近年は植物の3次元形質を非破壊的に測定するための手法が発展してきているが、既存のシステムは高価であり、大規模な施設や専門的な装置が必要といった理由から、生態学の分野ではそれらのシステムがほとんど用いられてこなかったという。 しかし、生態学的研究において草丈、投影葉の面積、草姿など植物の形に関する測定は非常に重要であり、鉢植えの植物を安価で高速に測定するシステムが必要とされていた。そこで同大学は、一般的なデジタルカメラと、市販およびオープンソースのソフトウェアを組み合わせたパイプライン(E
最近Pythonでオーケストレーション層(BFF)のアプリケーションを書く機会がありました。 Python3.4からはasyncioが導入され、I/Oバウンドな処理はシングルスレッドでも効率的に捌けるようになったものの、依然としてCPUバウンドな処理はGILが存在することで、シングルプロセス下では並列処理が制限されます。 このことから言語特性として、CPUバウンドよりもI/Oバウンドな処理を複数捌くことに適していると見ることができます。言語選択の意思決定をする際に重要なファクターとなりますが、そのためにはGILの仕組みを改めて知る必要があると思い、調べてみました。 GIL(グローバルインタプリタロック)とは そもそもGILとは何のことでしょうか。 正式にはGlobal Interpreter Lock(グローバルインタプリタロック)といい、PythonやRuby等の言語に見られる排他ロック
たくさんの文字列(や離散的な符号列)をメモリに載せないといけないんだけど、いろんな制約があって通常のList[str]では載らない…ということありませんか?(まぁあんまりなさそうですね) たまたまそういうことがあったので、その際に検討した内容をまとめておきます TL;DR メモリをもっと増やしましょう 富豪的に解決できるならいつでもそれが最高です しかし、世の中それでなんとかならんこともたくさんあります 用途があうのであれば専用のデータ構造を採用する 例えばもし共通のprefixやsuffixが存在し、順序に興味がなければtrie treeなどが使えます 例えば、弊社であれば、法人名をメモリに持ちたいなんてときもあります。そういうときに法人名の辞書をtrieで持ったりすることがあります 「株式会社」「一般財団法人」や「銀行」といった共通語がたくさんでてくるのでtrie treeでごりごり削
最近久しぶりにアルゴリズムイントロダクションを読んでいるのですが、ふと「Python(CPython)のデータ構造に関する各操作の計算量ってどれくらいなのかな?」と気になったので調べてみました。以下のページを参考にしています: Python Time Complexity 以下では $n$ や $k$ といった記号を使います。ここで $n$ はコンテナ内の要素数、$k$ はパラメータ内の要素数かパラメータの値とします。では見ていきましょう。 2021/05/02 コメントでのご指摘を記事に反映しました。ありがとうございます。 リスト まずはリストです。Pythonではリストは内部的にはC言語の配列として表しているようです。そのため、先頭要素の追加や削除を行うとそれ以降の要素をすべて移動する必要があるため大きなコストがかかります。なので先頭に要素を追加したり削除する必要がある場合は、代わりに
2021/10 追記 Pyannotate はメンテナが居なくなったため更新が途絶えました。またより表現多く typing を反映できるため、これからは Monkeytype を推奨します。 この記事は何か Python Advent Calendar 2020の 2 日目の記事です(元々 13 日目でしたが、2 日目の参加者が取りやめたので横入りしました)。「Python コードに自動で型を付与し、その型をテストで静的チェックして、保守性を高める方法」をご紹介する趣旨の記事です。 書いた理由 今回紹介するメインツールの pyannotate について、日本語で紹介している記事がほとんどなく、かつ古い情報が多かった為です(python3 サポートがない時代かつ、pytest との連携ができなかった時代)。「Python において型はいるのか?」という議論はしません。 今回紹介するツールは以
概要 (この記事のアイコン、Lambdaっぽいの頑張って探した..!) 2020年にLambdaにコンテナイメージがサポートされて以来、Lambda開発をしたことがなかった。 AWS Lambda の新機能 – コンテナイメージのサポート 以前Lambdaを開発しているときは、適用するときにzip化が面倒だなとか、ローカルとクラウド上での動きが違うのでバグりやすいなとか、そのバグが適用しないと分からないので開発に時間がかかるなとか、色々と不便があったのを覚えている。 先日、画像圧縮処理で久々にLambdaを触り、その際コンテナイメージを使った快適なLambda開発環境を考えたので紹介する。言語はPythonだが他の言語でも同じ構成で大丈夫なはず。 結論 ディレクトリ構造
こんにちは、モリカトロンでプログラマおじさんをやってる岡島です。 pip install で導入した NumPy と conda install で導入した NumPy とでは内部で使われているライブラリが違い、後者の方が高速だという記事を見つけました。 orizuru.io minus9d.hatenablog.com 要約すると Anaconda と pip では NumPy に使われている数値計算ライブラリが違っている pip が提供する Numpy は OpenBLAS を使っている Anaconda が提供する NumPy は Intel MKL (Math Kernel Library) を使っている 両者を比較すると、Anaconda が提供する NumPy のほうが速い という事みたいです。 今まで僕は Python のパッケージ管理を pip で行ってきましたが、Anac
指針 厳密解法に対しては、解ける問題例の規模の指針を与える。数理最適化ソルバーを使う場合には、Gurobi かmypulpを用い、それぞれの限界を調べる。動的最適化の場合には、メモリの限界について調べる。 近似解法に対しては、近似誤差の指針を与える。 複数の定式化を示し、どの定式化が実務的に良いかの指針を示す。 出来るだけベンチマーク問題例を用いる。OR-Libraryなどから問題例をダウンロードし、ディレクトリごとに保管しておく。 解説ビデオもYoutubeで公開する. 主要な問題に対してはアプリを作ってデモをする. 以下,デモビデオ: 注意 基本的には,コードも公開するが, github自体はプライベート そのうち本にするかもしれない(予約はしているが, 保証はない). プロジェクトに参加したい人は,以下の技量が必要(github, nbdev, poetry, gurobi); ペー
- はじめに - Pythonのパッケージ管理ツールは、長らく乱世にあると言える。 特にpip、pipenv、poetryというツールの登場シーン前後では、多くの変革がもたらされた。 本記事は、Pythonパッケージ管理ツールであるpip、pipenv、poetryの3つに着目し、それぞれのツールに対してフラットな背景、技術的な説明を示しながら、所属企業内にてpoetry移行大臣として1年活動した上での経験、移行の意図について綴り、今後のPythonパッケージ管理の展望について妄想するものである。 注意:本記事はPythonパッケージ管理のベストプラクティスを主張する記事ではありません。背景を理解し自らの開発環境や状態に応じて適切に技術選定できるソフトウェアエンジニアこそ良いソフトウェアエンジニアであると筆者は考えています。 重要なポイントのみ把握したい場合は、各章の最後のまとめを読んで頂
numbaというライブラリを使うと、Pythonのコードを比較的簡単に高速化できます。 うまくいけば、from numba import jitを書いて、高速化したい関数の前の行に@jitを書くだけで高速化できます。 仕組みとしては、numbaはPythonの仮想マシンコードを取得し、LLVM IRにコンパイルし、LLVMを使ってネイティブコードにするようです。 初回実行時は、コンパイル処理が走るので、若干遅くなりますが、重い処理だと、コンパイル時間を考えてもnumbaの方が速いこともあります。 利点と欠点 先に述べておきます。 利点 場合によっては、コード自体は改造せずに手軽に高速化できる コードの改造があったとしても、軽微な改造で済むことも多い 別ファイルに分けてビルドする、みたいな手間なことが必要なく、手軽に.pyファイルの中で使える 欠点 すべてのPython機能がサポートされてい
自分がよく使用する日本語自然言語処理のテンプレをまとめたものです。 主に自分でコピペして使う用にまとめたものですが、みなさんのお役に立てれば幸いです。 環境はPython3系、Google Colaboratory(Ubuntu)で動作確認しています。 Pythonの標準機能とpipで容易にインストールできるライブラリに限定しています。 機械学習、ディープラーニングは出てきません!テキストデータの前処理が中心です。 前処理系 大文字小文字 日本語のテキストにも英語が出てくることはあるので。 s = "Youmou" print(s.upper()) # YOUMOU print(s.lower()) # youmou 全角半角 日本語だとこちらのほうが大事。 全角半角変換のライブラリはいくつかありますが、自分はjaconv派。 MIT Licenseで利用可能です。 import jaco
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く