Python関連のことを調べてみた2022年11月07日

Python関連のことを調べてみた2022年11月07日

Djangoで出てくるthroughとは

[Udemy講師](https://www.takux.one)をしている藤本です。

[Djangoコース](https://www.takux.one/#django-ecweb-vegeket)の中で何気なく使っていた `through` について、質問をいただいたので、解説を書き残しておきます。

## 質問内容

> Item.tags.throughはどういう意味があるのでしょうか。

上記の質問の through はコース内では admin.py で使用しました。

“`python

class TagInline(admin.TabularInline):
model = Item.tags.through

class ItemAdmin(admin.ModelAdmin):
inlines = [TagInline]
exclude = [‘tags’]


“`

## サンプルのモデル解説

コースではItemモデルとTagモデルがあって、それらをManyToManyFieldで繋げています。

Itemモデルはアイテ

元記事を表示

しりとりの最長問題~基礎的なやり方で~

## 制作の経緯
授業のアルゴリズムの問題で、最長経路問題やったからしりとりに応用できないかな?やってみよー

“`python:shiritori.py
import copy
import numpy as np

class Word:
def __init__(self,number,word):
self.number=number
self.word=word

class Shiritori:
def __init__(self,number):
self.list=[]
self.number=number
self.flwlist=[]
self.word=0

def install(self,n,w):
e=Word(n,w)
self.list.append(e)
if not e.word[0] in self.flwlist:
self.flwlist.append(

元記事を表示

[Python]テキストファイルから特定の行を取得

# 目次
– [目次](#目次)
– [はじめに](#はじめに)
– [サンプルテキストファイル](#サンプルテキストファイル)
– [行番号で指定した行を取得](#行番号で指定した行を取得)
– [行ごとに分割したリストから取得](#行ごとに分割したリストから取得)
– [linecacheで取得](#linecacheで取得)
– [最初の行と最後の行を取得](#最初の行と最後の行を取得)
– [最初の行](#最初の行)
– [最後の行](#最後の行)
– [特定の文字列が含まれる行を取得](#特定の文字列が含まれる行を取得)
– [開始行と終了行を文字列で指定し、その間の行を取得](#開始行と終了行を文字列で指定しその間の行を取得)
– [参考](#参考)

# はじめに
– 今回はpythonでテキストファイルから特定の行を取得してみたいと思います。
– 以下の環境で動作確認をしています。
– python: Python 3.11.0
– os: macOS Ventura 13.0
# サンプルテキストファイル
以下、今回用意したサンプルテキストファイルです。

元記事を表示

[Python]ファイルの読み書き操作

# 目次
– [目次](#目次)
– [はじめに](#はじめに)
– [ファイルの書き込み](#ファイルの書き込み)
– [open関数でファイルを開く](#open関数でファイルを開く)
– [with文でファイルを開く](#with文でファイルを開く)
– [書き換えと追記](#書き換えと追記)
– [改行を入れる](#改行を入れる)
– [writelinesメソッドでリストを書き込む](#writelinesメソッドでリストを書き込む)
– [ファイルが存在しない場合のみ新規作成して書き込む](#ファイルが存在しない場合のみ新規作成して書き込む)
– [print関数で書き込む](#print関数で書き込む)
– [ファイルの読み込み](#ファイルの読み込み)
– [readメソッドで全文を読み込む](#readメソッドで全文を読み込む)
– [readメソッドで文字数を指定して読み込む](#readメソッドで文字数を指定して読み込む)
– [tellメソッドで現在位置を取得](#tellメソッドで現在位置を取得)
– [seekメソ

元記事を表示

データの可視化と簡単な分析をサクッと行えるアプリをつくる (streamlit)

# 概要

KaggleやSIGNATE等のデータ分析コンペに挑戦する際、分析課題と背景を読み込んだ後、まずはcsv等をぱぱっと可視化してデータの全体像を把握することから始めると思います (探索的データ分析ともいいます)。

Pythonでいうと、`df.info()`で欠損値やデータ型を確認して、`df.describe()`で要約統計量を確認して…という流れですね。

そこをもっともっと効率化したい。ただ、統計ソフトは持っていない。

そこで、そのような「データの簡単な可視化」を行えるWEBアプリを試作してみました。

# DEMO

[こちら](https://wgsbt4859-basic-statistic-app-main-y3vp06.streamlit.app/)からアクセス可能です。

# 要件定義 (ざっくり)

今回作成するアプリは、業務で使う本格的な統計アプリではなく、あくまで**データの一次確認用のアプリ**として位置付けます。

試作版リリースにあたり、最低限必要な機能を列挙してみます。

– csvを読み込めること
– データのサンプルサイズ、カラム数が分

元記事を表示

Teradata Vantage用のPythonライブラリ

[Teradata® Package for Python User Guide](https://docs.teradata.com/r/Teradata-Package-for-Python-User-Guide/May-2022)[リリース番号:17.10 リリース日付:2022/8/18]の翻訳です。

> Python用ライブラリ(teradataml) シリーズのコンテンツです。

:::note information
各機能の詳細な説明に関しては、段階的にリンクを追加していきます

元記事を表示

PythonのNetworkXのUnionFind(DSU)の特徴のメモ

# 最初に

AtCoderのPythonで使える`networkx`の`UnionFind`のメモです。
AtCoderで使えるけれど、あまり速くない気がします。

`networkx`の`UnionFind`をRubyに移植したい機会があり、
実装を見る機会があったので、特徴をまとめたいと思います。

ただ、普段Pythonを使わず、Pythonの用語じゃないかもしれないので、違ってたらコメントでも修正でも書いてもらえたら、嬉しいです。

# UnionFindの特徴

DSU(disjoint set union)とも言いますね。

出来ることは主に
– 要素の結合して、同じグループとする。
– それぞれの要素が同じグループにいるかどうかを素早く確かめる。

ですね。

# 主なメソッドの特徴

主なメソッドの特徴を書いていきます。

## `__init__`

インスタンスを作るとき、初期化はリストや範囲型の変数を引数で渡します。
`for`文で回せるイテラブルなものは引数にとれます。
何も引数を渡さなければ、空リストと同じ扱いです。
引数にとるものは、グラフの要素(node

元記事を表示

ラブライブ!スーパースター!のキャラを物体検出してみた。

どうもエンジニアのirohasです。

先日、物体検出の論文を漁っていて、最近流行りのYolov7の論文を読んで実装してみたので、必要に応じて解説しながら、どんな感じになったか紹介できればと思います。
(https://arxiv.org/pdf/2207.02696.pdf)
# 目次
[1.はじめに](#1-はじめに)
[2.環境](#2-環境)
[3.物体検出って何?](#3-物体検出って何?)
[4.Yoloとは](#4-Yoloとは)
[5.Yolov7の紹介](#5-Yolov7の紹介)
[6.使用する作品について](#6-Yolov7の紹介)
[7.キャラ紹介](#7-キャラ紹介)
[8.データセットの前処理](#7-データセットの前処理)
[9.データセットの作成](#8-データセットの作成)
[10.学習](#9-学習)
[11.結果](#10-結果)
[12.感想](#11-感想)
[13.参考文献](#12-参考文献)

# 1. はじめに
皆さんはラブライブ!を知っていますか?
アニメオタクなら一度は聞いたことがある伝説のアイドルアニメです。

ストーリーだけ

元記事を表示

BigQueryのローカル検証用にbigquery-emulatorを触ってみた。ついでにPythonから接続してみる

# はじめに

みなさん、BigQueryが絡む処理のローカル開発やテストどうしてますか?BigQueryは公式のエミュレーターが提供されていないのでけっこう困ること多いんじゃないでしょうか?

私はとりあえず、ローカルではなく専用の環境を用意してそこに接続する形にしていましたが、業務委託の方などに入っていただくことが増えると権限周りで少々悩ましいことも多いです。

ただ数ヶ月前に、goccyさんという方が開発されたGo製のOSS`bigquery-emulator`が公開され、こうした問題に解消の兆しが見えてきました。(開発者の方にはリスペクトしかありません!)

https://github.com/goccy/bigquery-emulator

少し前までは提供されていない機能も多かったのですが、開発が進み環境が整ってきているようなので、今回はこの`bigquery-emulator`を触ってみようと思います。

# 実行準備

今回は提供されているdockerイメージを利用して作業をしていくので、リポジトリのクローンは不要です。

※ docker, docker-compo

元記事を表示

PygameでRPG制作 ーーそれっぽい画面を作ってみよう⑤ HP表示とスライムリッキーの反撃、終了処理

この記事は、岩手県八幡平市のプログラミング教室「アクセルキャンプ」の公開教材です。
[アクセルキャンプ(フリースペースプラウド)のリンク](https://freespaceproud.com)
教材の作成依頼等も承っております。ご意見等は、リンク先の問い合わせ欄からお願いします。
教材の転用・利用等は自由です
***

# 最近リッキーの気になってるもの
皆さんポケモンGOとかやったことありますか?先生は最初にインストールだけして、ちょっと動かしただけなんですか、最初にやったときは、「すげ!ポケモンいる!カビゴンがうちにいる!」みたいになりました笑

でも、あれって携帯通してしか見れないので、しばらくやってるうちに「なんかなー、惜しいよなー」って思った人いません?先生はそうでした。そこで、ついに最近こういうのが出てきたんですよ!!
https://rental.kikito.docomo.ne.jp/portal/articles/5015/

ついにメガネでARできるようになったわけですよ!ドキがムネムネしませんか??ヤバくない??
まだ対応してるアプリが少なかったりす

元記事を表示

【試行錯誤】「〇〇で歌ってみた」動画の自動生成 その5:静止画をつなげて動画化

# 概要
前回は、動画の素材となる静止画を作成しました。今回はそれをつなげて動画をつくります。
最終的に以下のような動画ができました。

シリーズ一覧は以下です。
[【試行錯誤】「〇〇で歌ってみた」動画の自動生成 リンクまとめ](https://qiita.com/shimajiroxyz/items/5df23a0ca81a3a2d9568)

# 方針
以下のステップで作成します。

* 事前準備
* 無音動画の作成
* 無音動画と音声の結合

# 事前準備
## 替え歌情報
「その3」で

元記事を表示

Pyinstaller で実行ファイル化する時にやったこと

# はじめに

いつも何やってたか忘れてしまうので、よくやるだろう部分をメモして、将来の自分のために残したい。

## Pyinstaller について

https://pyinstaller.org/en/stable/index.html

# 前提

こちらの「前提」項目は、以下の大項目をまとめていく上での前提状態の事で、こちらが変更されると、まとめられた項目には多少の変化が生じる。

## パッケージ構成

“`python
project_root
|- .venv # virtualenv 環境
|- src
| |- sample
| | |- statics # 画像などの静的アセット
| | | |- app_icon.png
| | | |- app_icon.ico
| | | |- right_arrow.svg
| | | |- left_arrow.svg
| | |- ui

元記事を表示

ABC276をPythonとC++で

# 0 はじめに
## 0-1 記事について
AtCoder Beginner Contest 276の解説です。
実装はPythonとC++で書きます。
公式解説と違いがあるかも知れませんがご了承。
ミス等発見されましたらコメント欄にお願いします。

# 1 ABC276 解説
## 1-1 個人的な感想
今回もFを通せませんでした。
Diffは、Aが灰前半、Bが灰後半、Cが灰茶中間、Dが茶後半、Eが緑後半、Fが水後半と言った感じです。
先週と似てませんか?私はそう思います。
いい加減水後半を通したいです。

## 1-2 A問題 Rightmost

### 問題
英小文字列$S$が与えられます。
$S$に含まれる`a`のうち最も右にあるものが$S$の左から何番目かを求めて下さい。
尚、$S$に`a`が含まれない場合は`-1`を出力して下さい。

#### 制約
・$1 \leq |S| \leq 100$

### 解説

`S`について`for`文を回し、今見ている文字が`a`ならば答えを更新する、という操作を実装すれば解けます。
一回も更新されなかったならば`-1`を、そう

元記事を表示

【試行錯誤】「〇〇で歌ってみた」動画の自動生成 その4:静止画の生成

# 概要
前回作成した、替え歌情報に基づいて、動画用の静止画を生成する関数を作ります。
最終的に以下のようなファイルが得ることを目指します(上から替え歌歌詞を表す画像、替え歌歌詞、元歌詞を並べた画像です)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259353/2aa9d417-027f-03d9-16a0-8e31424fa274.png)

シリーズ一覧:
[【試行錯誤】「〇〇で歌ってみた」動画の自動生成 リンクまとめ](https://qiita.com/shimajiroxyz/items/5df23a0ca81a3a2d9568)

# 背景
最終成果物として、替え歌歌詞、元歌詞、替え歌歌詞に対応する画像をセットで表示した静止画を音楽に合わせて流した動画を想定しています。
そこで、まず静止画を作る関数を実装し、替え歌情報に基づいて実際に使う画像を作成します。

以下3つのステップを行います。

* 事前準備
* 静止画生成関数の作成
* 替え歌情報に基づく静止画生成

#

元記事を表示

Python 集計関数調査

## 背景
エクセルでデータを分析していたが、pythonの関数で効率化する関数がないか調査する。

## 調査結果
pandasのgroupby()やdescribe()を使用して色々できそう。
https://kino-code.com/pandas_groupby/
https://resanaplaza.com/2021/07/11/%E3%80%90python%E3%80%91pandas-%E3%81%AE%E9%9B%86%E8%A8%88%E3%82%92%E4%BD%93%E7%B3%BB%E5%8C%96%E3%81%97%E3%81%9F%E5%9B%B3%E3%81%A7%E8%A7%A3%E8%AA%ACgroupbyresample/

元記事を表示

Excelのカウント関数をPythonで実現するには(初心者向け)

# Excelのカウント関数をPythonで実現するには(初心者向け) 
Excelで使うカウント関数は非常に高機能で、初心者の人でもわかりやすく使えるのがポイントです。しかし、大人気言語PythonではExcelのカウント関数のように簡潔に書くことはできません。これを実現するために、どうするべきなのか。簡単に紹介します。 

## 扱う状況 
pythonのリスト型の変数「customers_list」にデータとして顧客の年齢が[25,40,30,19,32,16,17]として代入されている。
この時、15歳以上、25歳以下の顧客の人数を求めたい。
>注意:エクセルの方法は書きません

## 使う方法や関数
### 1.sum関数
>**Pythonに標準搭載されている関数。引数に渡したリスト内の総和を求める**
**リスト内のデータ型がbool型のみだったときは、Trueの数をカウントしてくれる** 

利用例1
~~~python
test_list = [1,2,3,4,5,6]
sum_result = sum(test_list)
print(sum_result)
~~~

元記事を表示

【試行錯誤】「〇〇で歌ってみた」動画の自動生成 その3:動画生成に必要な替え歌情報の整理

# 概要
前回までで、MusicXMLから歌詞とタイムスタンプを抽出し、元歌詞と対応付けることができました。今回はこの情報に基づいて動画生成に必要な替え歌情報を整理し、最終的に以下のようなファイルを得ることを目指します。

“`
parodytext start duration originaltext picture_path
0 マルタ 2.4 1.2 春が来た 春が来た どこに来た Flag_of_Malta.png
1 ニカラグア 3.6 2.4 春が来た 春が来た どこに来た Flag_of_Nicaragua.png
2 イラン 6.0 1.2 春が来た 春が来た どこに来た Flag_of_Iran.png
3 コロンビア 7.2 4.2 春が来た 春が来た どこに来た Flag_of_Colombia.png
4 ハンガリー 12.0 1.2 山に

元記事を表示

HuggingFace(BERT)モデルをtransformers-interpretで解釈する

## 0. はじめに

今回はBERTの解釈としてtransformers-interpretを試したのでメモがてら記載しておく。

– 動作環境
* OS : Windows10 pro
* python: 3.9.6 
* transformers: 4.23.1
* Pytorch: 1.12.1 (+cu116)
* transformers-interpret: 0.9.5
* GPU: RTX 2060
* jupyter notebook(vscode)

## 1. transformers-interpretでBERTのマルチクラス分類を解釈する

transformers-interpretとは、PyTorch用のモデル解釈ライブラリ 「Captum」を使用したTransformers専用のライブラリ。

SHAP等の解釈モデルと違い、**Transformers専用にチューンされているので使いやすい**

https://github.com/cdpierse/transformers-interpret

### 1

元記事を表示

pythonでデザインパターンの「Command」を実装する。

GoFのデザインパターン「Command」をpythonで書くときのためのテンプレートです。

“`フォルダ構成
command
└─command.py
main.py
“`

“`command.py
from abc import ABCMeta, abstractmethod

#命令のインタフェース(API)を定義する役。
class Command(metaclass=ABCMeta):
@abstractmethod
def execute(self):
pass

@abstractmethod
def display(self):
pass

#ConcreteCommand役の命令を実行するときに対象となる役。つまり、命令の受け取り手。例:複合機
class Receiver(object):
def DoSomething1(self, arg1):
print(“{0}引数を指定して、DoSomething1コマンドを受領。”.format(arg1))

d

元記事を表示

ASEで活用してみよう







ASE(Atomic Simulation Environment)はいろいろな科学計算ライブラリで使われているライブラリだ。

電顕屋の御貴兄におかれてはマルチスライスの入力ファイルなどを作るのに苦労している方も少なくないと思われる。
ASEはまさにそんなときに役に立つのだ。
簡単に分子や結晶構造を作成できる。
(すごくいろいろな機能があると思われるのだが、電顕屋にはこの機能だけでも十分使う価値があるはずだ。)

ASEはシミュレーション関連のライブラリ(例えばpyiron, abtem, Elk, Quantum espressoなど)をインストールするときに一緒にインストールされているので、改めてインストールしなくても使えるだろう。
インストールされてない

元記事を表示

OTHERカテゴリの最新記事