Python3関連のことを調べてみた2021年12月01日

Python3関連のことを調べてみた2021年12月01日

Python の asyncio は超便利

Python の asyncio ([公式ページ](https://docs.python.org/ja/3/library/asyncio.html)) は超便利なので紹介します。

# ■何が便利?

要するに JavaScript ではもはや当たり前になっている **async/await** が実現できます。
つまり、**非同期**(処理をしている間、同期して完了を待つのでなく、次の処理を実行するやり方)を実現します。
非同期により、全体の **処理速度を爆上げ** できる場合がよくあります。

例えば、外部サービスリクエストや、ファイル・DBへの読み書きなど、I/O関連は時間がかかる割にCPUは空いてたりするので、そこが有効に活用されるようになるわけです。

多くのシステムはI/Oが大量にあったりするので圧倒的です。

# ■それってスレッドでもできるのでは?

もちろん可能ですが、コンセプトが異なり、スレッドに比べて **圧倒的にお手軽** です。

スレッドと何が違うのかというと、主な違いは、スレッドは複数の処理が同時に走るということです。処理の裏で別の処理が同時に走

元記事を表示

Google Colab と Turtle で描くアルファベット一覧(大文字編)

# 0. はじめに

– [MYJLab Advent Calendar 2021](https://qiita.com/advent-calendar/2021/myjlab) 1日目の記事です.
– Google Colaboratory と Turtle(タートルグラフィックス)でのアルファベットの描き方をまとめました.
– Turtleに命令を出して動かすことで簡単に文字を描くことができます.

![myjlab.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/484145/05e9000d-dfb9-a4dc-e2c3-96c9dc8eecf7.gif)

# 1. Turtle(タートルグラフィックス)の基本操作
– 本家サイト:[turtle — タートルグラフィックス](https://docs.python.org/ja/3/library/turtle.html)を参考にしています.

## Turtleの動き

### 前進
“`Python
turtle.forward(d

元記事を表示

Enformerの紹介

#はじめに

DeepLearningを使ったバイオインフォマティクス分野のキラーアプリというと[AlphaFold2](https://qiita.com/chanfuku18/items/5460f1aed5a698966eb2)が一世を風靡していますが、AlphaFold2を作ったDeepMind社が同じく作成した[Enformer](https://doi.org/10.1038/s41592-021-01252-x)というアプリ、当然ながらDeepLearningを使っているわけですが、AlphaFold2に比べるとほどんどガン無視な状態です。この記事ではそんな可哀そうなEnformerについて解説したいと思います。

#Enformerって何?

一言でいうと「[BERT](https://qiita.com/omiita/items/72998858efc19a368e50)の入力にゲノムの塩基配列を使ったもの」ということになります(以下では基本的にBERTの内容は理解できているという前提で書いていますのでBERTのアーキテクチャーが解ってないという人はまずはBERTを勉

元記事を表示

ROS Noetic の環境構築まとめ

![rosnoetic.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2337794/f153f38f-b371-7062-b603-e7dbb74a9a4b.png)
はじめまして。
Qiita初心者なので、今回は記事を書く練習も兼ねてROS Noeticの環境構築をまとめました。
ROSって何?と思った方は以下の記事を参考にすると良いと思います。
[Robot-teck.jp “ROSとは/ROS2とは”[1]](https://robot-tech.jp/technology/rbo01.html)

#目的
Ubuntu20.04がインストール済みの環境にROS Noeticをインストールする

#概要
基本的には以下の本家Wikiの通りですが、一部異なる作業もしています。
[Wiki.ros.org[2]](http://wiki.ros.org/noetic/Installation/Ubuntu)

#開発環境
– Ubuntu20.04(x64)
– GPU:Nvidia Geforce

元記事を表示

Site matching query does not exist.

サイトマップ作成後にサイトにログインしようとしたところログインできなくなってしまった。

server error(500)
と表示されており、詳細が不明だった。

“`python:setings.py
DEBUG = True
“`

エラーログを表示
Site matching query does not exist.

原因
サイトマップを作成中にドメインを変更しなければいけないところを誤ってドメインを削除して新しく追加してしまった。

削除してしまったドメイン
“`pk=1, domain=’www.example.com’, name=’example.com’“`

ログインができない状態なのでシェルで追加することにした。

アプリのディレクトリ上で実行
シェルの起動

“`
python3 manage.py shell
“`

Siteのインポート

“`
from django.contrib.sites.models import Site
“`

削除してしまったドメインの作成

“`
Site.objects.create(pk=1, d

元記事を表示

平仮名<==>カタカナ 変換

応用

“`Python
chr(ord(“き”) + (ord(“ア”) – ord(“あ”))) # ‘キ’
chr(ord(“バ”) – (ord(“ア”) – ord(“あ”))) # ‘ば’
“`

元記事を表示

PyTorchでサクッとオリジナル画像分類モデルを作る【TIMM / Pytorch Image Models】

# はじめに
[kaggle](https://www.kaggle.com/)や[Nishika](https://www.nishika.com/)などのデータ分析コンペティションでは画像分類を行うことがしばしばあります。
難しいことを考えずにそれなりの精度を出すための画像分類モデルをサクッと作る方法を紹介します。

# 環境
– Ubuntu 20.04
– NVIDIA GeForce RTX 3090
– CUDA Version: 11.4
– Docker version 20.10.7, build 20.10.7-0ubuntu1~20.04.2

# Dockerイメージのダウンロード
[Docker Hub](https://hub.docker.com/r/pytorch/pytorch/tags)からご自身のCUDAのバージョンに合わせてダウンロードしてください。

## CUDAのバージョン確認方法
“`bash
$ nvidia-smi
Mon Oct 18 11:10:24 2021
+———————————

元記事を表示

アルファベット順で指定のアルファベットを「何番目」かを出力する

何度かアルファベットの取り扱いがあったので、メモとして残します。

## 1.アルファベットを変数に代入
“`
import string

alphabets = string.ascii_uppercase
alphabets
# ABCDEFGHIJKLMNOPQRSTUVWXYZ
“`

## 2.str.index()でインデックス番号を取得
“`
alphabets.index(“D”) + 1
# 4

“`

## 3.typeを調べる
“`
type(alphabets)
# str
“`

元記事を表示

Windows 10 sqlalchemy ImportError

環境
Windows10 pro
Python3.9
Anaconda3
VSCode
Sqlite3

以下のコードを実行した。
““

““

import sqlalchemy
import sqlalchemy.ext.declarative
import sqlalchemy.orm

engine = sqlalchemy.create_engine(‘sqlite:///:memory:’)

Base = sqlalchemy.ext.declarative.declarative_base()

class Person(Base):
__tablename__ = ‘persons’
id = sqlalchemy.Column(
sqlalchemy.Integer, primary_key=True, autoincrement=True)
name = sqlalchemy.Column(sqlalchemy.String(14))

Base.metadata.create_all(engine)
““

元記事を表示

sklearn1.0以降で混同行列を作成する

## 背景
これまでsklearn 0.20等で混同行列を作成する場合には、confusion_matrix関数を使用していました。
sklearn 1.0では新たに追加されたplot_confusion_matrix関数がexampleに追加されています。

ただし、plot_confusion_matrixは引数にestimator, X_test, y_testを引数に取ります。
既に予測済みの結果がある場合には、少し無駄な処理に見えます。
また、[Deprecatedに関するアナウンス](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.plot_confusion_matrix.html)も出ていることもあるため、あまり好んで使いたくありません。

## 予測済み結果から混同行列を作成する
`ConfusionMatrixDisplay.from_predictions` で作成できます。

“`python
import matplotlib.pyplot as plt
from sklea

元記事を表示

kivyMDチュートリアル其の肆什弍 Behaviors – Background Color篇

ハロー、Qiita!いかがお過ごしでしょうか。

肌寒い季節になってきましたね。まぁ時候の挨拶は来週に置いておくとして、
体調管理には気をつけたい時期となります。

ちょうど、来週からはAdvent Calendarなど始まってくると思いますが、
皆さんは参加されるのでしょうか。KivyMDにいたってはタグなどないので、
このビッグイベントには乗りませんw あったとしても1人で30日も投稿して
たら死にます。。

なので、KivyMDは相も変わらず、粛々と週1で投稿します。ということで今週
からはBehaviors章から始め、Background Color篇となります。ということ
でレッツラゴ。

## Background Color

冒頭では説明文が載っけられていますね。見てみましょう。

> The following classes are intended for in-house use of the library.

またまた難しそうな英文ですね。in-houseを検索すると「組織内の」とか「社内」の
とかが結果として出てきます。

https://eow.alc.

元記事を表示

【Python3】Streamlitで簡単にWebアプリケーション作成

#Streamlitとは
簡単に言うと、__Webアプリケーションフレームワーク__です。
Streamlitを使用する大きなメリットとしては、
Pythonスクリプトを書くだけで、__アプリケーションの構築__が可能であるということです。
Webアプリケーションを作成する場合は、基本的にはJavaScriptやhtml/CSSでフロント部分の構築が必要になりますが、Streamlitを使用すれば、__Python__のみでWebアプリケーションを作成することができます。
また、Pythonの学習のみを行っていて、フロントエンドに関する知識がまだない方や、簡単にWebアプリケーションを作成してみたいという方にお勧めです。

#インストール方法
以下のコマンドをターミナル上で実行することで、インストールが可能です。

“`
$ pip install streamlit
“`

#実際にインポートしWebアプリケーションの動きを見る
インストールが完了したら、Pythonスクリプトでコマンドを実行するだけで、アプリケーションの起動ができます。

“`py
# streamlitのイ

元記事を表示

Python3: cos類似度を計算 (ginza わかちがき)

次のページを参考にしました。
[GiNZAを使って分かち書きをしてみた話](https://qiita.com/yusa87/items/e25e2dcfb1b01fde13a4)

“`py:ginza_wakati.py
#! /usr/bin/python
#
# ginza_wakati.py
#
# Nov/28/2021
#
# ——————————————————————
import sys
import spacy

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

# ——————————————————————
def to_wakati_proc(sentence_list):
nlp = spa

元記事を表示

Python3: cos類似度を計算 (janome わかちがき)

次のページを参考にしました。
[Python, Janomeで日本語の形態素解析、分かち書き(単語分割)](https://note.nkmk.me/python-janome-tutorial/)

“`py:janome_wakati.py
#! /usr/bin/python
#
# janome_wakati.py
#
# Nov/28/2021
#
# ——————————————————————
import sys
from janome.tokenizer import Tokenizer

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

# ——————————————————————
def to_w

元記事を表示

Python 数値

#はじめに
動くコードは書けるが、基礎となる部分が曖昧だったのでまとめることにしました。
Python 3.8.2
https://github.com/Hirakawa0123/python_learning/blob/main/syntax/how_to_numbers.py
#整数
整数とは、-1,0,10などの数
小数点を含まない数値のこと
正の整数は「自然数」という

整数の計算

“`python:how_to_numbers.py
a = 10
b = 0
c = -1

ans = a + b + c
print(ans)
“`

出力結果

“`
9
“`

#浮動小数点数
浮動小数点数とは、-49.3,0.1,23.345などの数
小数点を含む数値のこと

浮動小数点数の計算

“`python:how_to_numbers.py
a = 0.1
b = 23.345
c = -49.3

ans = a + b + c
print(ans)
“`

出力結果

“`
-25.854999999999997
“`

#整数と浮動小数点数の計算
整数と

元記事を表示

Python3: cos類似度を計算 (Mecab わかちがき)

次のページを参考にしました。
[[文章生成]MeCabをインストールして分かち書きを試してみよう](https://atmarkit.itmedia.co.jp/ait/articles/2102/05/news027.html)
[文書のコサイン類似度を求める](https://tex2e.github.io/blog/python/docs-similarity)

“`py:mecab_wakati.py
#! /usr/bin/python
#
# mecab_wakati.py
#
# Nov/28/2021
#
# ——————————————————————
import sys
import MeCab
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

# ——————

元記事を表示

Python コードの書き方

#はじめに
動くコードは書けるが、基礎となる部分が曖昧だったのでまとめることにしました。
Python 3.8.2
https://github.com/Hirakawa0123/python_learning/blob/main/syntax/how_to_code.py
#ステートメントの区切り
ステートメントとは命令文の構成単位

Pythonのステートメントの区切りは、セミコロン「;」もしくは改行

“`python:how_to_code.py:how_to_code.py
a = 10; b =20; c = a + b
print(c)

a = 30
b =40
c = a + b
print(c)
“`

#ステートメントの改行
折り返す際は「\」を入力

“`python:how_to_code.py
a = 1 + 2 + 3 + 4 + 5 \
+ 6 + 7 + 8 + 9 + 10
print(a)
“`

#コメントアウトの書き方
すでにコメントアウトしてきたが、「#」を書くとコメントアウトすることができる
複数行コメントアウトする際は以下

元記事を表示

pythonでファイルの中からランダムで一つの音源をとってくるプログラム

#目的と準備
ランダムでひとつのmp3を
とってきてほしい
という願望がでてきたため

準備として
音源をまとめたディレクトリを作っておく
今回はjapanese50onという
五十音をいれたものを使った

#音声ファイルを一つとってくる
以下のサイトを参照した

https://www.higashisalary.com/entry/python-random-choice

“`
import glob
import os
import random
list=glob.glob(‘japanese50on/*.mp3’)
data=random.choice(list)
“`

このコードではjapanese50onのなかにある
mp3のファイルから一つをランダムに
とりだすということを行っています
dataのなかには相対パスで書かれた
ランダムなmp3の名前が入っています

#音声ファイルをコピーする

以下のサイトを参照した

Pythonにおけるcopyfileの利用方法について現役エンジニアが解説【初心者向け】

“`
import shutil
shutil.copyfile

元記事を表示

patchworklibを使って複数のplotを組み合わせる

# patchworklib
この記事は、[matplotlibのsubplotはもうやめたい その2](https://qiita.com/ponnhide/items/62b7e062e79b0eca6daa)の続きである。
最近、matplotlibで作ったplotを簡単に並べるためのツール[patchworklib](https://github.com/ponnhide/patchworklib)を公開した。ここではその利用法を簡単に解説する。
正直なところ、自分がmatplotlibのplotを並べるために使っていた自分用ツールを公開しているだけなので、他の人にとって使いどころがあるのかについては、あまり自信がない。。。しかし、subplotで時間を浪費している方々の役に立つのではないかと思う。  
ツールを作った経緯についてはは前の記事を参考にしてほしい。

# インストール
installは
`git clone https://github.com/ponnhide/patchworklib.git`
でgithubのレポジトリをクローンしてもらって、
`python

元記事を表示

pythonでひとつ前のtxtファイルのデータを読み取ってlistの次の要素をtxtファイルに出力してくれるプログラム

#前回

前回こういうものを作りました

https://qiita.com/akechiakechi/items/86316b7d1b872f3b5a47

#今回やること
今回は前回のプログラムを少し変えて
ひとつ前のtxtファイルのデータを読み取って
listの次の要素をtxtファイルに出力してくれるプログラムをつくります

#例えば
letter.txtの中に「あ」とだけ書かれていて
このプログラムを実行すると
50音順で次の「い」がletter.txtに上書きされる
というものです

#テキストファイルを読み込む
以下のサイトを参考にしました

https://atmarkit.itmedia.co.jp/ait/articles/2104/13/news024.html

まずコードをのせます

“`py
f = open(‘letter.txt’)
letter = f.read()
f.close()
“`
これをすることによって,letter.txtの文字を読み取って
letterの中に文字列として入れてくれます

#50音の何番目なのかを知る
以下のサイト

元記事を表示

OTHERカテゴリの最新記事