Python

 Computer >> コンピューター >  >> プログラミング >> Python
  1. Pythonで任意の個数の引数を受け取る関数を作成する方法(*argsと**kwargsの使い方)

    問題任意の個数の入力引数を受け取ることができる関数を書きたい場合があります。解決策Pythonでは、* を付けた引数を使用することで、任意の個数の引数を受け取ることができます。ここでは、「2つ以上の与えられた数値の平均を求める」という例を通じてその仕組みを理解しましょう。以下の例では、rest_arg は、呼び出し時に渡された残りのすべての引数(この場合は数値)を格納するタプルになります。関数はこれらの引数を1つのシーケンスとして扱い、平均値の計算を行います。# 与えられた数値の平均を求めるサンプル関数 def define_average(first_arg, *rest_arg):

  2. 欠損値を含むPython Pandasの2つのDataFrameを比較する方法

    はじめにPandasでは、欠損値(missing value)を表すためにNumPyのNaN(np.nan)オブジェクトを使用します。このNumPyのNaN値には、興味深い数学的な特性がいくつかあります。例えば、NaNは自分自身と等しくないという性質を持っています。一方、PythonのNoneオブジェクトは、自分自身と比較するとTrueと評価されます。np.nanの基本的な挙動まず、いくつかの例を見て、np.nanがどのように振る舞うのかを理解しましょう。import pandas as pd import numpy as np # PythonのNoneオブジェクトを自分自身と比較 pr

  3. Pythonで辞書のデータに対して計算(最小値・最大値・ソート)を行う方法

    はじめに:やりたいこと Pythonで辞書型のデータを扱っていると、「最小値や最大値を求めたい」「値で並べ替えたい」といった計算処理を行いたい場面が出てきます。しかし、辞書はキーと値のペアで構成されているため、リストのように単純に計算関数を適用しても、意図した結果にならないことがあります。 本記事では、テニス選手のグランドスラム優勝回数を例に、辞書に対して正しく計算を行うための方法を段階的に解説します。 サンプルデータの準備 まず、選手名をキー、グランドスラム優勝回数を値とする辞書を作成します。 PlayerTitles = { Federer: 20, Nadal: 20,

  4. Pythonでi個のx、j個のy、k個のzからなる部分列の個数を求めるプログラム

    文字列 s が「x」「y」「z」で構成されているとします。このとき、「x」が i 個(i ≥ 1)、その後に「y」が j 個(j ≥ 1)、さらにその後に「z」が k 個(k ≥ 1)という順序で並ぶ部分列の総数を求めます。 例えば、入力が s = xxyz の場合、出力は 3 になります。これは xyz を2通りと xxyz を1通りの合計3通り作れるためです。 解き方のアプローチ この問題は動的計画法(DP)の考え方を使うと効率的に解けます。文字列を先頭から順に走査しながら、次の3つのカウンターを更新していきます。 x: それまでに見つかった「xのみで構成される部分列」の個数 y: そ

  5. 【Python】スター式(*)を使ったアンパックの基本と応用を徹底解説

    はじめに Pythonのアンパック(unpacking)には、ひとつの基本的な制限があります。それは、アンパック対象となるシーケンスの長さを事前に把握しておく必要があるという点です。 通常のアンパックで起こる問題 まず、降順にソートした数値リストを用意します。 random_numbers = [0, 1, 5, 9, 17, 12, 7, 10, 3, 2] random_numbers_descending = sorted(random_numbers, reverse=True) print(fOutput \n*** {random_numbers_descending}) 出

  6. Pythonで連結リストとして表された2つの数値の和を求めるプログラム

    この記事では、単方向連結リスト(Singly Linked List)で表された2つの数値を加算し、その結果を新しい連結リストとして返す方法を解説します。ここでのポイントは、各リストが「最下位桁から順に」数値を格納しているという点です。例えば、リスト [5, 6, 4] は数値「465」を表し、リスト [2, 4, 8] は数値「842」を表します。これらを足すと 465 + 842 = 1307 となるため、出力は [7, 0, 3, 1] になります。アルゴリズムの考え方筆算と同じ要領で、各桁を順番に足し合わせながら繰り上がり(carry)を管理します。具体的な手順は以下の通りです。繰り上

  7. Python Pandas DataFrameで各グループごとに最大値を持つ行を抽出する方法

    はじめに データ分析において最も基本的かつ頻繁に行われる操作のひとつが、「グループ内で特定の列が最大値となる行を選択する」ことです。本記事では、PandasのDataFrameを使って、各グループの中から最大値を持つ行を抽出する方法を、具体的なコード例とともにわかりやすく解説します。 課題の確認 まず、取り組むタスクを明確にしましょう。ここでは「映画データセット」を例に、各公開年ごとに最も人気(popularity)の高い映画をリストアップすることを目標とします。 実装手順 1. データの準備 データ分析用のデータセットは、Kaggleなどのサイトで自由に入手できます。ここではGitHub上

  8. 文字列Tの中に含まれるSのすべてのアナグラムの開始インデックスを見つけるプログラム(C++・Python解説)

    問題の概要 2つの文字列 S と T が与えられたとき、T の中に S のアナグラム(文字の並べ替え)が現れる開始インデックスをすべて求めるという問題です。文字列は小文字の英字のみで構成され、S と T の長さはそれぞれ 20 および 100 を超えないものとします。 たとえば、入力が S = cab、T = bcabxabc の場合、出力は [0, 1, 5] になります。これは、T の部分文字列として bca(インデックス 0)、cab(インデックス 1)、abc(インデックス 5)がそれぞれ S のアナグラムと一致するためです。 アルゴリズムの流れ この問題は「スライディングウィンドウ

  9. PythonとPandasでSQLiteデータベースを操作する方法を徹底解説

    はじめに実際の企業環境では、データがテキストファイルやExcelファイルとして保存されていることはむしろ少なく、Oracle、SQL Server、PostgreSQL、MySQLといったSQLベースのリレーショナルデータベースが幅広く利用されています。さらに近年では、これら以外の代替データベースも急速に普及しています。データベースの選定は、アプリケーションが求めるパフォーマンス、データ整合性(インテグリティ)、スケーラビリティなどの要件によって決まるのが一般的です。本記事では、Pythonに標準で同梱されているsqlite3モジュールと、データ分析ライブラリPandasを組み合わせて、データ

  10. Pythonでファイルを比較する方法|filecmpモジュールの使い方を徹底解説

    はじめにPythonでファイル同士を比較したい場面は多くあります。たとえば、バックアップの整合性チェック、同期処理の検証、テストデータの確認などです。Pythonには標準ライブラリとしてfilecmpモジュールが用意されており、これを使うことでファイルやディレクトリを簡単かつ効率的に比較できます。本記事では、filecmpモジュールの主要な関数・クラスであるcmp()、cmpfiles()、dircmpの使い方を、実際のコード例と実行結果とともにわかりやすく解説します。filecmpモジュールとはfilecmpモジュールは、ファイルおよびディレクトリの比較を行うための標準ライブラリです。追加イ

  11. Pythonのlinecacheモジュールでテキストファイルの任意の行を読み込む方法

    この記事では、Pythonの標準ライブラリであるlinecacheモジュールを使って、テキストファイルの内容を効率的に読み取る方法を解説します。行番号を指定して目的の行だけを素早く取得したい場面で役立つテクニックです。linecacheモジュールとはlinecacheモジュールは、ファイルの内容を行単位に分割してメモリ上にキャッシュする仕組みを実装しています。キャッシュされた各行にはリストと同じようにインデックスでアクセスできるため、目的の行を探すために何度もファイルを読み込み直して解析する無駄な処理が不要になり、時間を大幅に節約できます。特に、同じファイルから複数の行を繰り返し参照するような

  12. Pythonのmmap関数でファイル読み込み性能を向上させる方法【実例付き解説】

    はじめにmmap(memory mapping:メモリマッピング)は、ファイルを仮想メモリにマッピングすることで、通常のI/O関数を使わずにファイルシステム上のデータへ直接アクセスできる仕組みです。アクセスごとに個別のシステムコールを発行したり、バッファ間でデータをコピーしたりする必要がないため、I/O性能が大幅に向上します。実際、メモリ上にあるものはすべて高速に動作します。たとえばSQLiteデータベースをオンディスクではなくインメモリで作成した場合、その方がはるかに高いパフォーマンスを発揮します。メモリマップドファイルは、用途に応じて「ミュータブル(変更可能)な文字列」として扱うことも、「

  13. Pythonで優先度付きキュー(PriorityQueue)を実装する方法を徹底解説

    はじめにPythonのqueueモジュールは、マルチスレッドプログラミングに適したFIFO(First-In, First-Out:先入れ先出し)およびLIFO(Last-In, First-Out:後入れ先出し)のデータ構造を提供します。キューを使うことで、セッション情報やパス、変数など、さまざまなデータをスレッド間で安全に受け渡すことができます。ロック処理は通常モジュール側が自動的に行ってくれるため、開発者はスレッドセーフな実装を意識せずに済みます。注意: 本記事では、キューの基本的な仕組みをすでに理解していることを前提としています。もし不安であれば、先に公式ドキュメントなどの参考資料に目

  14. 【初心者向け】Pythonでテキストを検索・置換する方法を徹底解説

    文字列の中から特定のテキストパターンを検索したり、別の文字列に置き換えたりしたい場面は、Pythonプログラミングで非常によくあります。本記事では、単純な文字列操作から正規表現を使った高度な処理まで、具体的なコード例とともにわかりやすく解説します。 基本的な考え方 検索・置換の方法は、扱うパターンの複雑さによって使い分けるのがポイントです。 単純な固定文字列の場合:str.replace() メソッドが最適な解決策です。 複雑なパターンの場合:re モジュール(正規表現)を活用します。 サンプルテキストの準備 まず、動作確認用のサンプルテキストを作成しましょう。 def sample(

  15. Pythonで文字列の先頭・末尾を判定する方法!startswith()とendswith()の使い方を徹底解説

    Pythonでプログラミングをしていると、「文字列が特定のテキストで始まっているか」「特定のテキストで終わっているか」を確認したい場面によく出会います。代表的な例としては、ファイル名の拡張子(.txt や .csv など)のチェックですが、URL のプロトコル確認など、応用範囲は非常に広いです。 この記事では、Python標準の startswith() メソッドと endswith() メソッドを使った文字列の先頭・末尾判定の方法を、具体的なコード例とともにわかりやすく解説します。さらに、複数のパターンを同時にチェックするテクニックや、よくあるエラーへの対処法も紹介します。 startswi

  16. 【Python入門】Matplotlibで複数のグラフを1つの図に組み合わせる方法(subplot・twinx活用)

    はじめに Matplotlibは、同じグラフ上に複数のプロットを重ねて描画できる強力なPythonの可視化ライブラリです。本チュートリアルでは、2つの異なるY軸を使いながら、1つの図の中に複数のデータを組み合わせて表示する方法を、実際に動くコード例とともにわかりやすく解説します。 事前準備:Matplotlibのインストール まず、Pythonのコマンドプロンプト(ターミナル)を開き、以下のコマンドでmatplotlibをインストールしてください。 pip install matplotlib 手順1:表示するデータを準備する ここでは、iPhone・Galaxy・Pixelの3機種につい

  17. Pythonで引数をオプションにする方法(argparseの使い方を解説)

    はじめにPythonのプログラムでは、コマンドライン引数が指定された場合はその値を使い、指定されなかった場合にはデフォルト値にフォールバックする、いわゆる「オプション引数」が必要になることがあります。本記事では、標準ライブラリの argparse を使ってオプション引数を実装する方法を解説します。ダッシュ(--)で始まるパラメータはオプション引数として扱われます。これらは省略可能であり、デフォルト値を持たせることができます。一方、ダッシュで始まらないパラメータは位置引数(positional argument)と呼ばれ、通常は必須となるため、デフォルト値は設定しません。実装方法サンプルコードi

  18. Pythonで複数のドキュメント形式(CSV・テキスト・Word)から文字列を検索する方法

    課題異なる形式のファイルが多数保存されたディレクトリの中から、特定のキーワードを含むファイルを探したい場面はよくあります。本記事では、Pythonを使ってCSV、テキスト、MS Word(.docx)といった複数のドキュメント形式を横断的にスキャンし、目的の文字列を検索する方法を解説します。事前準備まず、以下のパッケージをインストールしておきましょう。1. beautifulsoup4 … エンコーディング判定に使うUnicodeDammitのため2. python-docx … Word文書を読み取るためpip install beautifulsoup4 python-docx実装方法1.

  19. Pythonでマルチスレッドキューを実装する方法を徹底解説

    はじめに本記事では、実行すべきタスクをすべて保持する「タスクキュー」と、そのキューと連携して各要素を個別に処理する「スレッドプール」を作成する方法を解説します。まず、「キューとは何か?」という基本的な疑問から始めましょう。キューとは、異なる要素の集合体を特定の順序で管理するデータ構造のことです。身近な例を挙げて説明します。スーパーのレジで会計のために列に並んでいる場面を想像してください(どこのスーパーかは気にしないでください)。会計待ちの人々の列には、次のような特徴があります。人は列の一方の端から入り、もう一方の端から出ていく。人Aが人Bより先に列に入ったなら、人Aは人Bより先に列から出る(た

  20. PythonでAPIの結果を可視化する方法|GitHub APIとPlotlyを使った実践チュートリアル

    はじめにAPIを活用する最大のメリットの一つは、常に最新のライブデータを取得できる点です。データが頻繁に更新される場合でも、API経由なら最新の状態を確実に取得できます。APIプログラムは、特定の情報をリクエストするために専用のURLを使用します。たとえば「SpotifyやYouTube Musicで2020年に最も再生された楽曲トップ100」といった具合です。リクエストされたデータは、JSONやCSVなど、プログラムで扱いやすい形式で返却されます。Pythonを使えば、ほぼあらゆるURLに対してAPI呼び出しを記述できます。本記事では、GitHubのAPIからデータを抽出し、その結果をグラフ

Total 8994 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:184/450  20-コンピューター/Page Goto:1 178 179 180 181 182 183 184 185 186 187 188 189 190