タグ

tipsとpython3に関するteddy-gのブックマーク (20)

  • google colab でログ出力無しで進捗を表示する - Qiita

    1.はじめに google colab でライブラリのインストールなどを行うとき、場合によっては長々とログを出力することがあります。これはスマートでないですが、ログを出力させないと今度は進捗が全く分からない。では、どうすれば良いか。 2.対策 tqdm.notebook と  io.capture_output() を下記のように組み合わせます。処理ブロックがA〜Dの4つだとしたら、各ブロックの終わりに pbar.update(*) で進捗率を記載し、合計100になるようにしておけばOKです。 各ブロックが終わると pbar.update(*) で設定した分プログレスバーが増えますので、大体の進捗が1行で分ります。 from IPython.utils import io import os import subprocess import tqdm.notebook TQDM_BAR_F

    google colab でログ出力無しで進捗を表示する - Qiita
    teddy-g
    teddy-g 2024/05/23
    Google Colab上でtqdm使ってプログレスバー出す方法。これは便利。
  • パターンマッチング構文( match case )の使い方

    Python の構造的パターンマッチング 1 の使い方についてかんたんにまとめました。 構造的パターンマッチングは一見シンプルですがさまざまな使い方ができる非常に強力な機能です。 正しく理解してうまく活用できれば Pythonic なコードを書くのに役立つものと思います。 目次 構造的パターンマッチングとは 構造的パターンマッチングがサポートするパターン 構造的パターンマッチングとは 構造的パターンマッチング( Structual Pattern Matching )は、 Python 3.10 で新たに導入された(される)構文です。 2 つのキーワード match と case を使用します。 単純な値での分岐の他に、データ構造やアトリビュートのパターンでの分岐なども可能となっています。 見た目は他のオブジェクト指向型の言語によくある switch case に似た印象を与えますが、どち

    パターンマッチング構文( match case )の使い方
    teddy-g
    teddy-g 2024/05/20
    PythonのSwitch~CaseにあたるMach~Caseについて。備忘。
  • [Python入門]関数のローカル変数とスコープ

    名前解決 プログラム実行時に何かの名前(変数名や関数名など)を発見すると、Pythonはそれを解決するために、3つ(またはそれ以上)のスコープを「ローカルスコープ→グローバルスコープ→ビルトインスコープ」の順にたどっていく。つまり、関数の実行時に名前が見つかると、まずは関数のローカルスコープからその名前を検索する。ローカルスコープにその名前があれば、それ(ローカル変数やパラメーターなど)の値を利用する。見つからなければ、グローバルスコープ→ビルトインスコープという順番で、その名前を検索していき、見つかったところでその値を利用する。最終的に名前が見つからなければ、先ほどの画像にあった「NameError」を発生させる。 以下では、名前を解決する順序についてコード例と共に見ていこう。 ローカルスコープのみ ここでmyfunc関数についてもう一度見てみよう。 def myfunc(): a =

    [Python入門]関数のローカル変数とスコープ
    teddy-g
    teddy-g 2024/05/20
    Pythonの変数スコープについて。備忘。
  • 関数がネストされたPythonコードで関数の内側で変更した変数を関数の外側から参照する方法を調べてみた | DevelopersIO

    こんにちは、CX事業部の若槻です。 関数がネストされたPythonコードで、関数の内側で変更(定義)した変数の値を外側から参照したい場合があります。 例えば以下のコードでは、inner()の外側(outer()の内側)でvar = 'Initial Var'とし、inner()の内側でvar = 'New Var'としています。 def outer(): var = 'Initial Var' def inner(): var = 'New Var' return(var) print(inner()) print(var) この場合outer()を実行した際の出力は # 出力 >> python outer() New Var Initial Var となり、inner()の内側で行った変更が外側に反映されず、print(inner())とprint(var)の出力結果が異なる結果とな

    関数がネストされたPythonコードで関数の内側で変更した変数を関数の外側から参照する方法を調べてみた | DevelopersIO
    teddy-g
    teddy-g 2024/05/20
    Pythonの変数のスコープについて。備忘。
  • Pythonで日付の加算、特にnヶ月後やn年後の日付を求める方法 | 分析ノート

    たまに必要になると、 dateutil の relativedelta の存在をど忘れしていて何度も調べているので記事にまとめておきます。1ヶ月後の日付が欲しければ relativedelta 使え、で終わる記事なのですがそれだけだとあんまりなので、datetimeモジュールのtimedelta オブジェクトなどの紹介も合わせてまとめていきます。 さて、日付データとかを扱うプログラムを書いていると、n時間後とかn日後の時刻が必要になることはよくあります。Pythonのdatetimeモジュールでは、datetime.datetime.timedelta オブジェクトを使うことで、それを計算することができます。 参考: timedelta オブジェクト class datetime.timedelta(days=0, seconds=0, microseconds=0, millisecon

    teddy-g
    teddy-g 2023/03/24
    うん、」確かに日付関係の処理はいつも忘れてしまう。dateutilのrelativedeltaとdatetimeのtimedeltaを記憶しておこう
  • Selenium ChromeDriver & PythonをMacで動かせた。 - Qiita

    Selenium関連の記事はググったらたくさん出てくるが、seleniumとwebdriverはバージョンの縛りが非常に厳しいらしく、インストールしても全く動かない。 苦戦すること2時間、やっと動かせるようになったので、失敗した時のパターンと成功パターンを書いておきます。これからseleniumでChromeを操作しようとする人の参考になれば幸いです。 失敗パターン pythonを動かす時はGoogle colaboratoryやjupyter notebookを使っていたので、seleniumも同じように動かせるだろうと思っていた。 こんな感じで、seleniumのインストールやimportは特に問題なくできる。 しかしながら、webdriverを動かそうとしたら、エラーが出てしまう。 いろいろと試行錯誤して、以下のような手順を踏んだところ、うまくChromeを立ち上げることができたので

    Selenium ChromeDriver & PythonをMacで動かせた。 - Qiita
    teddy-g
    teddy-g 2022/02/26
    SeleniumをMacで使う方法。
  • 【コード付き】Selenium×Pythonの使い方!Chromeブラウザを自動操作してみようー!|スタビジ

    当サイト【スタビジ】の記事では、SeleniumをPythonで動かしてChromeブラウザ上で行う操作を自動化していきます。非常に簡単なコードを記述するだけで操作できるのでぜひ試してみてください!Seleniumを駆使すれば普段の単純労働が全自動になるかもしれませんよ! こんにちは! 消費財メーカーでデジタルマーケター・データサイエンティストを経験後、現在は独立して働いているウマたん(@statistics1012)です! Pythonを使うと非常に色々なことが出来ちゃいます。 その中でもSeleniumを使ったブラウザの自動化は非常に便利。 普段なんとなーく惰性でやっているルーティンワークはもしかしたらSeleniumを使えばぜーんぶ自動化できてしまうかもしれません。

    【コード付き】Selenium×Pythonの使い方!Chromeブラウザを自動操作してみようー!|スタビジ
    teddy-g
    teddy-g 2022/02/26
    Seleniumの基本的な使い方。備忘。
  • Automate LinkedIn Login with Selenium

    teddy-g
    teddy-g 2022/02/26
    SeleniumでLinkedInにログインして…というテクニック。APIとどっちがいいか。
  • send_keys(special)-Python

    「send_keys」を実行することで要素にキーボード入力することが出来ます。 element.send_keys(keys.xxx)の形でxxxに特殊キー指定すると、要素に対して特殊キーを入力することができます。element.send_keys(keys.xxx,string)の形で指定された場合は、特殊キーであるxxxが押下された状態で、要素に対して文字(文字列)を入力することができます。 一方、element.send_keys(string,keys.xxx)は要素に対して通常キー入力した後、特殊キー入力しています。具体例としては「検索テキストボックスに文字列入力後にEnterキー入力」などがあげられます。 ◆メソッド ・send_keys(Keys.xxx) ◆使用形態 ・element.send_keys(Keys.xxx,string) または element.send_k

    teddy-g
    teddy-g 2022/01/30
    Seleniumのsend_keysで特殊キーを操作する場合の色々。
  • https://www.web-development-kb-ja.site/ja/python/pandas-aggfunc%E3%81%AE%E3%83%94%E3%83%9C%E3%83%83%E3%83%88%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%83%AA%E3%82%B9%E3%83%88/1056276710/

    teddy-g
    teddy-g 2021/12/02
    Pandasのpivot_tableで個々の値に個別の関数を充てて計算したいときはディクショナリー型で指定する。さらにaggfuncにlambda式を適用すれば大概の計算はできる。
  • Pythonでリスト(配列)から重複した要素を削除・抽出 | note.nkmk.me

    Pythonで、リスト(配列)から、 重複した要素を削除(一意な要素・ユニークな要素のみを抽出) 重複した要素を抽出 して、新たなリストを生成する方法について説明する。 なお、リストではなくタプルの場合も同様の考え方で実現可能。 リストやタプルが重複した要素を持っているかどうかを判定したい場合、一つのリストではなく複数のリスト間で共通する要素や共通しない要素を抽出したい場合は以下の記事を参照。 関連記事: Pythonでリスト(配列)に重複した要素があるか判定 関連記事: Pythonで複数のリストに共通する・しない要素とその個数を取得 なお、リストは異なる型のデータを格納可能で、厳密には配列とは異なる。配列を扱いたい場合はarray(標準ライブラリ)やNumPyを使う。 関連記事: Pythonのリストと配列とnumpy.ndarrayの違いと使い分け numpy.ndarrayに対する

    Pythonでリスト(配列)から重複した要素を削除・抽出 | note.nkmk.me
    teddy-g
    teddy-g 2021/09/26
    list(set(ARRAY))で重複した要素を削除してユニークなリストを作ることができる。備忘。
  • リストの空の要素を駆逐する - Qiita

    更新履歴: 間違いを修正しました。@shiracamusさん、ありがとうございます。 Introduction あるデータを読み込むと、以下のようなリストが返されました。

    リストの空の要素を駆逐する - Qiita
    teddy-g
    teddy-g 2021/09/09
    内包表記で書くかLambda式で書くのが美しい
  • python; np.meanにて Python int too large to convert to C long と出る

    リスト内のTimedeltaをnp.meanで平均しようとしたのですが、Python int too large to convert to C longと出てしまいます。 リスト内の時間がCのlongの範囲を超えてしまったということなのでしょうが、これをどうにか計算できるようにすることは可能なのでしょうか。 listを間引きすれば計算できる様にはなるのですが、間引きせずに計算できる方法があれば教えていただきたいです。 よろしくお願いします。 リスト(kakuteiList_np) [[0 Timedelta('18 days 00:24:58')] [1 Timedelta('17 days 23:59:23')] [2 Timedelta('0 days 03:23:49')] ... [17202 Timedelta('0 days 19:49:57')] [17203 Timede

    python; np.meanにて Python int too large to convert to C long と出る
    teddy-g
    teddy-g 2021/08/24
    PandasのTimedeltaを1万回繰り返すと頭が来るって死ぬ。ナノ秒からマイクロ秒にすればOKとあるが面倒なので日数計算にして解決したっていう。
  • 先読みと後読みを使ったパターンの記述

    正規表現における先読みと後読みは、マッチするかどうか確認は行うけれどマッチした文字列としては取得しないときに利用します。先読みには肯定先読みと否定先読み、後読みには肯定先読みと否定先読み、がそれぞれ用意されています。ここでは Python を使って正規表現で先読みと後読みを使用する方法について解説します。

    先読みと後読みを使ったパターンの記述
    teddy-g
    teddy-g 2021/08/24
    肯定先読みとか否定先読みとかのシンプルな説明。これなら理解できる。
  • 正規表現:文字列を「含まない」否定の表現まとめ | WWWクリエイターズ

    「〜を含まない」といった、否定の意味を持つ正規表現を記述する場合、下記のように、大きく分けて2種類のケースがあります。 「特定の1文字を含まない」といった否定表現か、もしくは「正規表現パターンを含まない」といった表現かで、大きく解決の方針が異なる点に注意して下さい。 特定の1文字だけを否定したい場合は非常にシンプルです。この場合、「文字クラス」、もしくはエスケープシーケンスで表される文字型を利用する事で表現できます。 一方で、特定の正規表現パターンを否定したい場合、少し記述が複雑になります。今回は「否定先読み」を利用した表現を、この記事の後半にご紹介します。 基的な正規表現の記法はこの記事では触れませんので、不安な方はこちらの記事も合わせてご参照下さい: 正規表現とは?基構文とメタ文字一覧(サンプル付) それでは、順番に詳しく見ていきます。 任意の一文字を含まない文字列の正規表現 a「

    teddy-g
    teddy-g 2021/08/24
    肯定先読みとか否定先読みとかこの説明を読んでいくとなんだか混乱してくる
  • 正規表現:AND(かつ)の表現方法 | WWWクリエイターズ

    正規表現の「AND(かつ)」の表現 正規表現において、複数のパターンの論理積「AND」、すなわち「A、かつB」といったパターンの並列表現はややトリッキーです。初学者にはややハードルが高いかもしれませんが、記事後半に解説を加えておきましたので、よくわからない方はご一読下さい。 〇〇を含む、AND(かつ)、〇〇を含む AND(かつ)条件の例として、リテラル(=ただの文字)のマッチを考えてみます。下記は、「ラーメンを含む、かつ、カレーを含む」という、お子様も大好きなメニューの定番をマッチングする正規表現です。 // ラーメンを含み、かつ、カレーを含む文字列の表現 ^(?=.*ラーメン)(?=.*カレー).*$ 注目すべきは、「(?=」「)」の括弧です。これは肯定先読みを言いますが、こちらについては、追って解説します。 〇〇を含む、AND(かつ)、〇〇を含むまない 同様に、否定先読みを組み合わせて

    teddy-g
    teddy-g 2021/08/24
    肯定先読みとか否定先読みとか学ぶ前にまずAND条件をよく理解したほうが良い
  • Basemapをインストールしようとしたらつまづいたので忘備録 - Qiita

    屋で立ち読みしたらBasemap( pythonで簡単に地図をプロットできるモジュール。データの可視化を地図上にしたいときにとても重宝します。)っていうなんかかっこよさそうなものがあるってことで帰って早速インストールしてみました。 以下のようなシンプルなコードでかっこいい地図が描けます。 インストールまで結構つまづいたので忘備録としてのメモ。 import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap %matplotlib inline m = Basemap() m.bluemarble()

    Basemapをインストールしようとしたらつまづいたので忘備録 - Qiita
    teddy-g
    teddy-g 2020/10/08
    地図可視化ではBasemapは諦めてMapBoxでやりなはれ、と将来の自分に警告を送るべく残しておく。
  • Pythonで地名から住所と座標を割り出すジオコーディングを試してみる

    2020年新年最初の投稿です 色々とPython製のライブラリについて調べていたら、仕事でも使えそうなライブラリを見つけたので、今回はそれを試してみます。 地名から座標を割り出す今回はジオコーディングの一種でもある地名や住所から座標を割り出してくれるPython Geocoderというのを使っていきます。Geocoderというものは、多言語にもあるライブラリだそうです。 Geocoderの特徴は、複数のマップサービスのAPIを統一されたスキーマや文法などで代わりに呼び出してくれます。 約30個近くのマップサービスに対応しており、GeocoderからGoogleMap、OpenStreetMapとあらゆるマップサービスからマップの情報を引き出してくれます。 ちなみにGoogleMapなどはAPI Keyが必要ですが、API Keyを設定していなくても、API Key不要なOpenStreet

    Pythonで地名から住所と座標を割り出すジオコーディングを試してみる
    teddy-g
    teddy-g 2020/10/08
    地名だけじゃなくランドマークとかMountain View, CAみたいな表現からもGeocodingできるスグレモノ。毎度取りに行かずGeocoding結果をcsvにして再利用すれば良い。Excelの地図可視化がヘボくなったのでこっち推奨。
  • GeoIP2を使ってIPアドレスの情報を取得 (Python編) - Tahoo!!

    前のエントリーでは、PHPでGeoIPを使ってIPアドレスを解析した。 エントリーでは、Pythonを使ったやり方をメモ。と、言ってもほぼPHPと同じw データベースのダウンロード 上記のエントリーと同様なので、上記のエントリーを参照のこと。 インストール インストールにはpipを使う。pipのインストールに関しては、pythonを使っている場合大抵インストールされていると思われるので省略する。 PHPと同様にGithubの公式ページが参考になる。 GeoIP2 Python APIのインストール $ pip install geoip2 これでインストールは完了。 使ってみる 以下のサイトを参考に、PythonでもIPアドレスから地域の情報を取得してみる。 サンプルコード import geoip2.database # データベースの読み込み reader = geoip2.data

    GeoIP2を使ってIPアドレスの情報を取得 (Python編) - Tahoo!!
    teddy-g
    teddy-g 2020/10/08
    うっかり間違えてインストールしたら割と便利だったGeoIP2。Plotly/Mapboxと組み合わせればIP→位置情報→地図可視化のコンボを決められる。
  • Pandasでヒストグラムの作成や頻度を出力する方法

    ヒストグラムを作成するhist関数 基数の数を変更する (bins) ラベルを元にヒストグラムを作成する by 非数値データの頻度をヒストグラムで表示する まとめ 参考 Pandasにもヒストグラムを作成する関数hist()が存在します。この関数は値を表示するのではなく、ヒストグラムをmatplotlibを使ってプロットします。単純に頻度の数値データが欲しい場合はvalues_counts関数が便利な関数です。 記事では ヒストグラムの作成の仕方 value_counts関数を使った非数値データの頻度の出力方法 について解説します。 今回扱うサンプルデータはKaggleのチュートリアルからとってきたものです。 Titanic - Kaggle ここのtrain.csvという名前のファイルを使います。 (ダウンロードするためにはユーザー登録が必要ですが簡単なものなのでしておくことをお勧めし

    Pandasでヒストグラムの作成や頻度を出力する方法
    teddy-g
    teddy-g 2020/10/08
    Pandasでヒストグラムを書くときのポイントをいくつか。備忘まで。
  • 1