Python3関連のことを調べてみた2022年10月19日

Python3関連のことを調べてみた2022年10月19日
目次

pandasでファイルをNaNを出さずに読み込む

# 概要 pandasでファイルを読み込んだときに、NaNが出ないようにするだけの小ネタです。 # 課題 例えばpandasで次のようなsample.csvファイルを読むとします。 |a |b |c | |–|–|–| |a1|b1| 1| |a2|b2| | |a3| | 3| 次のコードで読み込むと “`python import pandas as pd df = pd.read_csv(‘sample.csv’) df.dtypes # 各列のtypeを表示 “` > a列:object > b列:object > c列:float となります。(Object型にはStr型が含まれます) c列は「int」で読んで欲しいのですが、 df.loc[1,’c’] が「NaN」になるせいで「float型」になるわけです。 しかも、困ったことにb列の3行目の df.loc[2,’b’] も、実は「NaN」で「float型」です。 で、この「NaN」の処理が大変面倒くさい。 replaceかapplyかforループで狙い撃ちす
元記事を表示

40代おっさんPythonを勉強する(ライブラリ編)

## 本記事について この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。 もし不正などありましたらコメントにてお知らせいただければ幸いです。 ## ライブラリ – ライブラリとは – Pythonでプログラミングする際に必ず使うのが「ライブラリ」です。「ライブラリ」とは、特殊な機能を持った関数やクラスを一つにまとめたもので、インターネット経由で誰でも自らのPythonプログラムにインストールして使うことができます。 – 参照 – – Pythonの組み込み関数と違って、標準ライブラリを使う前にインポートする必要がある – ライブラリのパッケージとは階層構造に組織するモジュール群のこと – サードパーティーによるたくさんのライブラリがあって、それぞれ同じ名前のモジュールや関数などを避けることは不可能 – パッケージにすると、トップレベルの名前だけ違って、モジュールや関数は階層的に呼び出すので、曖昧さはなくなる ###
元記事を表示

【Python3】Selenium3⇒4にしたらProxy環境下で動作しなくなった話(解決)

# 概要 社内Proxy環境下、selenium3で作成し実行していたスクリプトを、[【Python】Selenium 4の変更点とWarning](https://qiita.com/vZke/items/a7e8a75849ecaaa7f236)(zke様)を参考にselenium4の記述で書き直したところ、driver起動の部分でエラー発生 調べても出てこず困っていましたが、解決したので方法を残しておく # 環境 python 3.9.13 selenium 4.5.0 # 要約 ・環境変数no_proxyが設定されていないとlocalhostにプロキシ通そうとするコードに書き換わっていた ・環境変数no_proxyに、localhost,127.0.0.1の値を設定したら動くようになった (実行したcmd、エディタ等の再起動必須) # エラー内容 ### ソースコード “`python from selenium import webdriver from
元記事を表示

計算化学者のためのPython入門ーサンプルデータ集ー

# はじめに このシリーズは計算化学を題材にした Python プログラミングを紹介した「**計算化学者のためのPython入門**」の1つです。 特に「計算化学関連の Python プログラム開発に携わる予定」の読者を想定してます。 – [基礎知識のおさらい](https://qiita.com/TakuroTsutsumi/items/bcc86d243f5b38e93de9) – [Python練習問題](https://qiita.com/TakuroTsutsumi/items/601f29d819624754e9df) – [プログラム開発に参加するための心得](https://qiita.com/TakuroTsutsumi/items/cac3f3e7c32acaaef3ec) – [クラスの使いみち](https://qiita.com/TakuroTsutsumi/items/5f8595bc2ffc68020a9b) – [サンプルデータ集](https://qiita.com/TakuroTsutsumi/items/5dfb251ad0818d41cd1d)
元記事を表示

計算化学者のためのPython入門ークラスの使いみちー

# はじめに このシリーズは計算化学を題材にした Python プログラミングを紹介した「**計算化学者のためのPython入門**」の1つです。 特に「計算化学関連の Python プログラム開発に携わる予定」の読者を想定してます。 – [基礎知識のおさらい](https://qiita.com/TakuroTsutsumi/items/bcc86d243f5b38e93de9) – [Python練習問題](https://qiita.com/TakuroTsutsumi/items/601f29d819624754e9df) – [プログラム開発に参加するための心得](https://qiita.com/TakuroTsutsumi/items/cac3f3e7c32acaaef3ec) – [クラスの使いみち](https://qiita.com/TakuroTsutsumi/items/5f8595bc2ffc68020a9b) – [サンプルデータ集](https://qiita.com/TakuroTsutsumi/items/5dfb251ad0818d41cd1d)
元記事を表示

計算化学者のためのPython入門ープログラム開発に参加するための心得ー

# はじめに このシリーズは計算化学を題材にした Python プログラミングを紹介した「**計算化学者のためのPython入門**」の1つです。 特に「計算化学関連の Python プログラム開発に携わる予定」の読者を想定してます。 – [基礎知識のおさらい](https://qiita.com/TakuroTsutsumi/items/bcc86d243f5b38e93de9) – [Python練習問題](https://qiita.com/TakuroTsutsumi/items/601f29d819624754e9df) – [プログラム開発に参加するための心得](https://qiita.com/TakuroTsutsumi/items/cac3f3e7c32acaaef3ec) – [クラスの使いみち](https://qiita.com/TakuroTsutsumi/items/5f8595bc2ffc68020a9b) – [サンプルデータ集](https://qiita.com/TakuroTsutsumi/items/5dfb251ad0818d41cd1d)
元記事を表示

計算化学者のためのPython入門ーPython練習問題ー

# はじめに このシリーズは計算化学を題材にした Python プログラミングを紹介した「**計算化学者のためのPython入門**」の1つです。 特に「計算化学関連の Python プログラム開発に携わる予定」の読者を想定してます。 – [基礎知識のおさらい](https://qiita.com/TakuroTsutsumi/items/bcc86d243f5b38e93de9) – [Python練習問題](https://qiita.com/TakuroTsutsumi/items/601f29d819624754e9df) – [プログラム開発に参加するための心得](https://qiita.com/TakuroTsutsumi/items/cac3f3e7c32acaaef3ec) – [クラスの使いみち](https://qiita.com/TakuroTsutsumi/items/5f8595bc2ffc68020a9b) – [サンプルデータ集](https://qiita.com/TakuroTsutsumi/items/5dfb251ad0818d41cd1d)
元記事を表示

計算化学者のためのPython入門ー基礎知識のおさらいー

# はじめに このシリーズは計算化学を題材にした Python プログラミングを紹介した「**計算化学者のためのPython入門**」の1つです。 特に「計算化学関連の Python プログラム開発に携わる予定」の読者を想定してます。 – [基礎知識のおさらい](https://qiita.com/TakuroTsutsumi/items/bcc86d243f5b38e93de9) – [Python練習問題](https://qiita.com/TakuroTsutsumi/items/601f29d819624754e9df) – [プログラム開発に参加するための心得](https://qiita.com/TakuroTsutsumi/items/cac3f3e7c32acaaef3ec) – [クラスの使いみち](https://qiita.com/TakuroTsutsumi/items/5f8595bc2ffc68020a9b) – [サンプルデータ集](https://qiita.com/TakuroTsutsumi/items/5dfb251ad0818d41cd1d)
元記事を表示

40代おっさんPythonを勉強する(名前空間とスコープ編)

## 本記事について この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。 もし不正などありましたらコメントにてお知らせいただければ幸いです。 ## 名前空間とスコープ – 各関数はそれぞれ専用の名前空間を定義される – メインの領域のグローバルスコープ(大域空間)と関数内のローカルスコープ(局所空間)が分かれている – 大域空間ではグローバル変数を定義し、局所空間ではローカル変数を定義する – グローバル変数の値は関数内から参照できる “`python # id()関数はPythonが全ての変数を識別するための番号 name = ‘としき’ # グローバル変数 print(‘グローバル:’, name, id(name)) def show_name(): print(‘内部関数:’, name, id(name)) show_name() print(‘グローバル:’, name, id(name)) “` こちらはエラーが起きる “`python name = ‘としき’ # グローバル変数 pr
元記事を表示

40代おっさんPythonを勉強する(イテレータandジェネレータ編)

## 本記事について この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。 もし不正などありましたらコメントにてお知らせいただければ幸いです。 ## イテレータandジェネレータ編 – 他のプログラミング言語では大体ループを使ってシーケンスデータを処理する “`python names = [‘としき’, ‘アッキー’, ‘三郎’] i = 0 total = len(names) while i < total: print(names[i]) i += 1 ``` - イテラブルオブジェクトとしてforで処理すると1つずつの要素を取り出せる ```python names = ['としき', 'アッキー', '三郎'] for n in names: print(n) ``` - 基本のイテラブルオブジェクト:文字列、リスト、タプル、辞書、しゅうごうなど ### ジェネレータ - ジェネレータとは、シーケンスを作成するオブジェクトで、イテレータのソースデータになることが多い - 今まで使っ
元記事を表示

Stable DiffusionをSingularityで動かす

## はじめに 最近話題のStable Diffusionのインストールです。僕的にはStable DiffusionはGoogle翻訳以来のインパクトでした。イラストの制作の仕事は一変してしまうのでしょうね。この記事の目的はSingularityを使用して手間をかけずにStable Diffusionをインストールすることです。一度、defファイルを作ってしまえば同じ環境を用意できます。Google Colaboratoryを使用すると簡単にStable Diffusionを実行できます。しかし、モジュールの再ロードや実行時間の制約等の制限が多いためオンラインではなくローカルで動作させたいのです。一から導入するのは大変ですがインストールしてみてはいかがでしょうか。 ## 環境 – ubuntu22.04(64bit) – RAM8G(swapで16G) – GPU NVIDIA GeForce RTX 1080 – singularity:3.10.2 – python3 – pip ## メモリは16G以上で実行すること Stable Diffusionのコードを実行した時、
元記事を表示

moviepyの動画書き出しの進捗をGUIの方に出すには

# 忙しい人用 VideoFileClip().write_videofileのlogger引数にproglog.ProgressBarLoggerを継承したクラスを渡して上手いことやる # きっかけ [こんなもの](https://github.com/midry3125/CreateMV/)を作っていざ実行ファイル化したいとなったときに僕は思いました “`「moviepyの動画書き出しの進捗、コンソールに出されるけどどうしよう」“` と 最初は面倒くさそうと思って普通にコンソールも表示させてました しかし、やはり動画の書き出しだけCUIに進捗出すのはどうなのかと思い、偉大なるGoogle様に質問させていただきました # 実装してみる Google様から得られた情報をもとに、「動画に音声をつけ、かつその進捗をGUIとして表示する」という処理を実装してみるとこうなります(今回はGUIにwxPythonを使ってます) “`python import wx from moviepy.video.io.VideoFileClip import VideoFileClip
元記事を表示

moviepyを使ったプログラムを実行ファイル化する際の注意点

# 何も考えずに実行ファイル化してみる “`python:main.py import sys from moviepy.editor import * if 2 <= len(sys.argv): videos = [VideoFileClip(path) for path in sys.argv[1:]] clip = concatenate_videoclips(videos) clip.write_videofile("video.mp4") ``` ただの動画連結プログラムです もちろんちゃんと動きます これを何も考えずに実行ファイルにしてみる ```bash $ pyinstaller --onefile -n program main.py ``` 多分実行ファイルの生成には成功します # だかしかし 生成した実行ファイルを実行するとこんなエラーが ``` (前略) AttributeError: module 'moviepy.audio.fx.all' has no attribute 'audio_fadein' ``` #
元記事を表示

40代おっさんPythonを勉強する(無名関数編)

## 本記事について この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。 もし不正などありましたらコメントにてお知らせいただければ幸いです。 ## 無名関数:lambda – 1つの分で表現する無名関数 – 普通簡単に表せる関数に使う – あまり繰り返して使わない関数に使う(基本使い捨て) “`python # 普通の関数 def square(x): return x**2 # 二乗のリスト sq = [square(x) for x in range(10)] print(sq) “` – squareの関数をmap関数で導入すると – 名前 = lambda 引数, 引数, … : 式 “`python sq = list(map(square, range(10))) print(sq) # 同じことにlambdaを使うと簡潔になる sq = list(map(lambda x: x**2, range(10))) print(sq) # もっと簡潔に、直接内包表記を使う sq =
元記事を表示

Django 複数選択フォームを動的に更新する(get_form_kwargsとMultipleChoiceField)

## 環境 Windows 11 Home Python 3.10.2 Django 4.0.2 venv利用あり ## 背景 フォームに表示する選択肢をModelから取得したい。 Modelが更新されたらフォームの選択肢も更新されてほしいが、フォームにModelから読み込むコードを書いても、もう1度`manage.py runserver`されるまで更新されなかった。 views.pyを用いて動的にフォームの選択肢を更新する方法を記載する。 ゴールイメージはこんな形 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515586/209f9484-cfac-8078-e864-0c061fc5b7e8.png) ## 手順1 まず適当なMpdelを作成し、管理画面で更新できるようにする。 animalアプリケーションを作成 `python manage.py startapp animal` ## 手順2 各種pyファイルを更新する “`python:mysite\sett
元記事を表示

【完全版】NumPyの使い方を徹底解説【機械学習】

NumPy(ナムパイ)とは、高速計算処理を得意とするPythonのライブラリです。


機械学習をPythonで行う場合は、NumPyをよく使います。

本記事では、NumPyの基礎的な文法を徹底解説します。<

元記事を表示

Pythonでインスタンスオブジェクトをサブクラスのものに変換する

## 概要 言葉でうまく説明できそうに無いのでコードをどうぞ “`Python:main.py class ClassA: def __init__(self): self.a = 1 def method_a(self): print(self.a) class ClassB(ClassA): def __init__(self): super().__init__() self.b = 2 def method_b(self): print(self.b) instance_a = ClassA() … # instance_aをClassBのインスタンスに変換 instance_a.method_a() instance_a.method_b() “` このコードが正しく動作するようにしたいという訳だ。 ## 解決策 stack overflowより https://stackoverflow.com/questions/597199/con
元記事を表示

AtCoderで水色になったので有用そうなことを書く

2022年3月くらいに「緑コーダくらいやってみるか」と始めて、惰性で続けて水色コーダになりました。そこまでに考えたことを書いときます。書かないと忘れるからね。 ![スクリーンショット 2022-10-16 9.33.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14365/05208840-553e-50ba-517f-147e1798d9c2.png) # 前提(私のこと) (AtCoderのノウハウを読むだけなら、ここはスキップできます) ## 書き手の背景とやってた目的 私はアラフォー。Engineering Managerといった管理職のロールが多いです。 普段仕事でプログラムをあまり書かないもので、逆にプログラミングの理解度を底上げする意義があるなぁ、と考えました。職業上AIっぽい仕事に関係はしていて、データサイエンティストの方などと計算量の会話をすることはあります。 プログラムを主の仕事にはしていないんですが、大学時代にコンピュータ科学系の学部・大学院にはいました。自分を
元記事を表示

Pythonで間違えて変数名にビルトイン関数を使ってしまったのに動いてしまったことについて

# なんでそんなことしたの 某プログラミングスキルチェックサイトで問題を解いていたのですが、2桁の数字を0埋めで表示させたい場面がありました。 この問題はPythonで挑みました。恐らくPythonに慣れ親しんでいる方であれば、文字列型の`.format`関数を使うというのがパッと思い浮かぶのではないかと思われます。特にこの問題は2つ2桁の数字を並べるものだったので、後でそれが最適解だったことに気付きました。 ただ、私は普段JavaScriptやTypeScriptに慣れ親しんでいたので、そこで使いがちな手法を使うことにしました。 “`python def to2digit(num): return (‘0’ + str(num))[-2::] // … hoge = to2digit(hour)+to2digit(min) “` …おわかりいただけたでしょうか。 もう既にタイトルでネタバレになっていますが。 # これどうなるの この動作を括弧の内側の方から追っていきます。 `min`は数字だと思って使ってしまったビルトイン関数ですが、`str(min)`はエラ
元記事を表示

40代おっさんPythonを勉強する(関数編)

## 本記事について この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。 もし不正などありましたらコメントにてお知らせいただければ幸いです。 ## 関数 – 同じコードを再利用したい時や、まとまりのある処理に関数を使うと便利 – 関数とは、名前の付いたコード – 任意の型、任意の個数の入力引数 – 任意の型、任意の個数の結果を出力 ### 関数の定義と呼び出し – def 関数名(引数): – 関数名は変数名と同じ規則に従う(先頭は英小文字か`_`(アンダースコア)、残りは英小字、数字、アンダースコア) – returnで結果を出力(結果がないときはreturnしなくても良い) – 定義 “`python def do_nothing(): # 定義する pass “` – 呼び出し “`python do_nothing() “` – 引数と出力 “`python def whatcolor(name): # 仮引数 return ‘私は’ + name output = whatn
元記事を表示

OTHERカテゴリの最新記事