タグ

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

  • Pythonの関数定義で引数にデフォルト値を持たせるときの注意点 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Pythonの関数定義で引数にデフォルト値を持たせるときの注意点 - Qiita
    teddy-g
    teddy-g 2024/07/19
    Pythonの関数定義でデフォルト値に空配列([])を設定したつもりが、関数ロード時にしか空配列が設定されないので、実行2回目以降に影響が出るという話。デフォルト値はNoneにしておき、関数内で空配列を指定すべし。
  • 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) となり、inner()の内側で行った変更が外側に反映されず、print(inner())とprint(var)の出力結果が異なる結果となりました。これは、varのスコープがinner()およびouter()のそれぞれのローカルスコープであるためです。 今回は、このよ

    関数がネストされたPythonコードで関数の内側で変更した変数を関数の外側から参照する方法を調べてみた | DevelopersIO
    teddy-g
    teddy-g 2024/05/20
    Pythonの変数のスコープについて。備忘。
  • Pythonで連続した日付のリストを作る | 分析ノート

    日付の連番を文字列で必要になったので、Pythonで生成する方法を二つメモしておきます。 一つ目は、 標準ライブラリである datetime を使うものです。 開始日を生成して、必要な日数だけtimedeltaで差分を加算したものをリスト化したら得られます。 生成したリストはdatetime.datetime型なので、strftimeで文字列に変換して完成です。 from datetime import datetime, timedelta # 日付のリスト生成() date_list = [datetime(2020, 1, 25) + timedelta(days=i) for i in range(10)] # 文字列に変換 date_str_list = [d.strftime("%Y-%m-%d") for d in date_list] print(date_str_list

    teddy-g
    teddy-g 2023/06/20
    日付の連番をPythonで作るときの方法。何に使ったか忘れた。
  • 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式を適用すれば大概の計算はできる。
  • Matplotlibの日本語文字化けを解消する(Mac編) | DATUM STUDIO株式会社

    はじめにPythonでグラフを作成したい場合、グラフ描画ライブラリであるmatplotlibを利用するのが定石となっております。 しかしながら、matplotlibでグラフのタイトル、X軸、Y軸を日語表記で設定した場合、文字化けが発生し結局英語表記で済ませていることが多いのではないでしょうか。 今回はmatplotlibでグラフを描画する際、グラフのタイトル、X軸、Y軸を日語表記に指定したとしても文字化けが発生しない方法を2つ紹介します。 なお、今回紹介するのはmac、jupyter notebook環境下での設定方法です。ご留意ください。 実行環境 Python 3.6.5 matplotlib 3.3.4 jupyter notebook matplotlibのドキュメントサイト matplotlibで日語の設定をしない状態でグラフを作成まずは、グラフの各ラベルを英語表記で指定し

    Matplotlibの日本語文字化けを解消する(Mac編) | DATUM STUDIO株式会社
    teddy-g
    teddy-g 2021/10/28
    matplotlibを日本語にする方法。備忘。
  • 【Python】matplotlibで日本語を使おう

    matplotlibの設定ファイルを作成し、日語を使えるようにしよう matplotlibの設定ファイルパスを確認します。 import matplotlib print(matplotlib.get_configdir()) ターミナルを起動して設定ファイルを作るフォルダまで移動します。 matplotlibの設定ファイルを移動したフォルダで作成します。 vi ./matplotlibrc INSERTモード([I])に切り替えて、以下を入力し保存([esc]+:wq)します。 (今回はMacにデフォルトでインストールされている「Hiragino sans」を指定します) font.family : Hiragino sans matplotlibのフォント設定確認 再度、以下を実行してみると作成したmatplotlibrcで指定したフォントになっているはずです。 import mat

    【Python】matplotlibで日本語を使おう
    teddy-g
    teddy-g 2021/10/28
    matplotlibを日本語にする話。備忘。
  • [Python] CufflinksでPandasのデータフレームをPlotlyに一発描画 - Qiita

    はじめに 以前、[Python] Plotlyでぐりぐり動かせるグラフを作るの記事で、インタラクティブなグラフを描画することができるPlotlyというライブラリを紹介しました。ただ、Plotlyの描画に至るまでに唱える呪文をいまいち覚えきれず、毎回どこかからコピペをしており、手軽に使用できないかなと常々思っていました。 そんな状況で、Cufflinksという、Pandasのデータフレームから、Plotlyを用いたグラフを一発で描画するライブラリを見つけたので紹介します。 Cufflinksのインストールと使いかた インストールは、pip install cufflinksで完了です。 描画するには、Cufflinksをインポートしてから、df.plot()と同じように、df.iplot()と打ち込むだけと簡単! import pandas as pd import numpy as np

    [Python] CufflinksでPandasのデータフレームをPlotlyに一発描画 - Qiita
    teddy-g
    teddy-g 2021/10/28
    データフレームから一発でPlotly使ってナイスなグラフを作ってくれるライブラリ、cufflinks、らしい。うまく動かなかった。備忘。
  • ipysheetでシートのサイズを設定する

    ipysheetでシートのサイズを設定するには、sheetメソッドで以下の引数を使用します。 ・rows : 行数 ・columns : 列数 サンプルコード 以下のサンプルコードをノートブックに張り付けて実行します。 import ipysheet sheet = ipysheet.sheet(rows=3, columns=2) ipysheet.cell(0, 0, "3rows and 2columns") sheet 〇サンプルコードの実行結果画面

    ipysheetでシートのサイズを設定する
    teddy-g
    teddy-g 2021/10/28
    iPysheetの使い方いろいろ。備忘。
  • 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))で重複した要素を削除してユニークなリストを作ることができる。備忘。
  • Pandas 列名×行番号で要素を抽出する - Qiita

    はじめに loc,ilocなど、行名/列名,行番号/列番号を基に要素抽出は出てくるものの、 列名×行番号による抽出方法が上手く探せなかったため、メモ投稿です。 やりたかったこと 大元のデータフレーム(列名有り,行名無し)から、特定の要素を持つグループに分け、 各データフレームに対して1行ずつ参照して処理をしていく必要があった。 その際、列の指定は出来るが行の指定が思うようにできないため、行番号で処理を試みた。 (reset_indexも考えたが、きっと列名×行番号での指定も出来るはず…) 結論 atとindexを組み合わせ、df.at[df.index[行番号],'列名'] で抽出できる (↓の記事をきちんと読めば良かった...) https://note.nkmk.me/python-pandas-at-iat-loc-iloc/ お試し # 列名のみのデータフレーム作成 df = pd

    Pandas 列名×行番号で要素を抽出する - Qiita
    teddy-g
    teddy-g 2021/09/26
    Pandasで行番号と列名で抽出するとき、df[カラム名][n]ではn=0としても抽出した最初のレコードを取り出せないので、df.at[df.index(0),カラム名]とする。
  • リストの空の要素を駆逐する - 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
    肯定先読みとか否定先読みとかのシンプルな説明。これなら理解できる。