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

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

[py2rb] deque

# はじめに
移植やってます
# deque (Python)
“`python
cleavage_sites = deque([0], maxlen=ml)
“`
デックは分かるのですが、`maxlen`は曲者
> 長さが制限された deque がいっぱいになると、新しい要素を追加するときに追加した要素数分だけ追加したのと反対側から要素が捨てられます

https://docs.python.org/ja/3.7/library/collections.html#collections.deque
# どうする? (Ruby)
“`ruby
class Deque
attr_accessor :que
def initialize(*args)
@que = args[0]
@maxlen = args[1]
end

def push(args)
@que.push args
while @maxlen.nil?.! && @que.size > @maxlen
@que.shift
end
end

元記事を表示

[BigQuery] BigQueryのPython用APIの使い方 -テーブル操作編-

この記事は [BrainPad Advent Calendar2021](https://qiita.com/advent-calendar/2021/brainpad) 21日目の記事となります。
今回は、[2年前にBigQueryのテーブルの作成方法](https://qiita.com/Hyperion13fleet/items/0e00f4070f623dacf92b)を記載したのでより利用頻度の高いデータ操作やBQMLのモデル作成方法についてまとめておこうと思います。

BigQueryをAPI経由で使う中で「あれ?どうやって書くんだっけ?」と公式リファレンスを確認しに行く頻度が高かったものを中心に整理しておきました。

# 初期設定
まずは、BigQueryをPythonのAPIで使うための初期設定を書いておきます。ライブラリの読み込みやBigQueryのテーブル名などを定義しておき後々これらを使ってクエリ結果などを参照します。

GCPの同一プロジェクト内で諸々の処理を実施することを想定しているため、クレデンシャルを明示的に渡すような処理はここでは行いません。

“`

元記事を表示

[py2rb] import

# はじめに
移植やってます
# import (Python)
“`utils.py
def parse(s):
return s.upper()
“`
“`main.py
import utils

print(utils.parse(‘abs’))

# ABS
“`
外部ファイルのモジュールを読み込みます。
しかし、この時点でかなりの違和感があります。
# require_relative (Ruby)
“`utils.rb
def parse(s)
s.upcase
end
“`
“`main.rb
require_relative ‘utils’

puts parse(‘abs’)
“`
`Ruby`で同様に書いた場合、いきなり関数名のみで呼び出します。
`Python`の場合、ファイル名+関数名での呼び出しになっています。

名前空間的には、関数名のみでの呼び出しはあまり喜ばしくないので、`Ruby`の場合、例えば次のようになります。

“`utils.rb
module Utils
def self.parse(s)
s.up

元記事を表示

TensorFlow Similarityを読み解いてみる

この記事は[フューチャー Advent Calendar 2021](https://qiita.com/advent-calendar/2021/future)の18日目の記事です。遅刻しました。

# はじめに
 [TensorFlow Similarity](https://github.com/tensorflow/similarity)は2021年9月14日に初公開されたライブラリです。本記事ではこのライブラリについて実装の内容や意図を読み解いていきたいと思います。流れとしてはまず初めにSimilarityの全体の流れについて説明し、次に実装について説明や考察を行い、最後にどのような用途でTensorFlow Similarityを使うべきかや未来について思いをはせます。

# Similarityについて
## 距離学習とTensorflow Similarity
 TensorFlow Similarityは距離学習を行い、モデルを提供するためのパイプラインを揃えたライブラリです。距離学習は古典的なクラス分類の学習に近いですが、目的が少し異なります。クラス分類の学習ではク

元記事を表示

【え、簡単すぎ…!?】pythonで簡単にスクレイピング をしてみたメモ

#環境構築

https://qiita.com/yutoun/items/788fac08bf73f173d447

いつも通りこれで環境構築完了する。

#requests
htmlを取得する目的

“`
pip install requests
“`
でrequests使えるようにする

“`python
import requests
url=”https://qiita.com/1000ch/items/93841f76ea52551b6a97″
r = requests.get(url)
“`
こんな感じでrequest.getの引数に取得するurlをいれる

#BeautifulSoup
requestsで取得したhtmlを加工して扱えるようにする目的

###一つ目の要素を取得する

“`python
import requests
from bs4 import BeautifulSoup #追加
url=”https://qiita.com/1000ch/items/93841f76ea52551b6a97″
r = requests.get(url)

元記事を表示

GitHub Actionsで定数値などを各jobで使いまわす

# TL;DR

GitHub Actionsで多くのジョブを定義した際に、定数値(使うPythonバージョンやバッジの色だったりなど)などの定義を各ジョブで使いまわしたい(記述を統一したい)と思い色々調べて調整したのでその備忘録です。

# 発生していた問題点

少し前にGitHub Actionsでジョブを細かく分割・キャッシュ・並列化などしたのですが、その影響で各ジョブで重複する値の指定の部分が結構発生していました。

同一のジョブ内であれば環境変数など設定すれば問題ないのですが、ジョブをまたいだ場合には環境変数が反映されません。しかし記述が重複しているとDRY原則的に少々気になってしまいます。

できれば各ジョブの前に定数定義的なことができると良いな・・・という状態でした。

# 定数的に他のジョブの値を参照する方法

定数的に値を設定してその値を他のジョブで参照するには以下のような手順が必要になります。

– 必要な定数値などを設定するためのジョブでoutputsの定義を行う。
– その定数値などを参照したいジョブではneedsでそのジョブを指定する。
– needsが指定さ

元記事を表示

CNNを使って0から9の数字を分類する

この記事は[豊田工業大学Kaggleサークル Advent Calendar 2021](https://qiita.com/advent-calendar/2021/kaggle-toyota-ti)の21日目の記事です。

#1. はじめに
豊田工業大学3年生のよしむらです。
来年2月に工場実習があるのですが、選考の結果、第一志望の企業に行くことになりました!

選考時には企業が求める経験やスキルを持っていることを用紙にアピールする必要があります。その内定した企業が必須としているものは、
**「Pythonフレームワークを用いたディープラーニングによる画像認識の経験」**というものでした。私はこの経験について語ることで第一志望をつかみ取ることができました。

問題は、**画像認識なんてやったことない**ということです。
そのことがバレて怒られないように今のうちにやっておこうと思います。

#2. 概要
画像分析の初心者のためのKaggleコンペティション [**Digit Recognizer**](https://www.kaggle.com/c/digit-recognizer

元記事を表示

Python 比較演算子 ‘is’ を使ったときの意外な落とし穴

# はじめに
突然ですが、プログラミングの授業の期末試験だと思って、下のPythonコードの出力結果を考えてみてください。

“`
a = 100
b = 100
print(‘a == b: ‘, a == b)
print(‘a is b: ‘, a is b)

a = 300
b = 300
print(‘a == b: ‘, a == b)
print(‘a is b: ‘, a is b)
“`

今回は上のような比較演算子の振る舞いについて、Pythonビギナーが知ったつもりになって知らなかった小ネタを書き留めておきたいと思います。

# この記事のまとめ

– Python では、int の `-5` ~ `256` の値が同じメモリアドレスに格納されている
– 同じメモリアドレスに格納されている int とそうでないものでオブジェクト比較時の振る舞いが変わる
– `intern(value)` でよく使う値を同じメモリアドレスに格納することもできる

# ‘is’ is not ‘==’

`is` と `==` は Python でよく使われる比較演算子の代表で

元記事を表示

Pythonで簡単にGUIを作ろう!【PySimpleGUIケーススタディ】

#0. はじめに
今年Pythonの記事を結構書いてきましたが、最近の記事かつまぁまぁ閲覧数が多かったのがGUIの記事[【PySimpleGUI】PythonでオリジナルGUIアプリを作成](https://qiita.com/ku_a_i/items/20004800adc78fa94a0b) だった為に需要はそこそこあると判断し、本記事ではPySimpleGUIのケース集を共有していこうと思います。

また、前座として簡単ですがGUIライブラリの比較もしてみたのでおまけ程度に楽しんでいっていただければと思います。

* 動作環境
* OS : Windows10 pro
* Python : 3.8.3
* PySimpleGUI :4.55.1
* jupyter notebook
* (Kivy : 2.0.0)
* (PyQt5 : 5.15.6)
* (Tkinter : 8.6.9)

#1. PythonGUIライブラリ簡易比較

かっこいい本格的なGUIを作りたいという場合はC++やC#,JAVA等が候補になるのかもですが、近年は機械学習と簡単に組み合

元記事を表示

VagrantでSMTPサーバーを作ってPythonで送信APIを作成する

# はじめに

どうも、新卒でラクスに入社した@hirobexです。
今は[MailDealer](https://www.maildealer.jp/)というサービスの開発をしています。
名前の通り、メールを扱う商材なのですが、私にはメール周りの知識が乏しいです。

なので、今回Advent Calenderという機会に少し自分でメール関連の機能を触ってみました。

# SMTPサーバーの設定

## vagrantfileの設定例

“`ruby:Vagrantfile
Vagrant.configure(“2”) do |config|
config.vm.box = “ubuntu/focal64”
config.vm.network “private_network”, ip: “192.168.33.10”
end
“`

## Postfixのインストール

“`shell
sudo apt-get install -y postfix
“`

メールサーバーの設定形式を聞かれるため、「設定無し」を選択

インストール完了後、設定ファイルをコピーしてくる

元記事を表示

教師なし学習で周期表(金属)を分析してみる【主成分分析・R・Python】

この記事は富士通クラウドテクノロジーズ Advent Calender 2021の21日目の記事です。
20日目の記事は@thuydg@githubさんの[ニフクラmobile backendの新Kotlin SDK](https://qiita.com/thuydg@github/items/08e6690a62a9cde96497)についてでした。
ものすごく丁寧な解説で、SDKをほとんど知らなかった私でも簡単に理解することできました!
ぜひご覧ください!!

## はじめに
はじめまして!FJCT新人のコダックです。
FJCTではAI技術を使用して課題を解決する[データデザイン by ニフクラ](https://data.nifcloud.com/)を提供しております。
そこで今回はAI関連の記事を書いていこうと思います。

## テーマの背景
私は最近、化学系のYoutuberにハマっています。学生の頃は工学系の学校に通っていたため、化学についてほとんど学習しておらず、Youtubeを通して化学の面白さに触れ、少し学生時代に使っていた化学の教科書を見返してみました。まず目に入っ

元記事を表示

pygameでノベルゲームを作成してみる

## はじめに

NTTドコモの坂口です!
普段は音声認識や音声合成に関する業務に携わっておりますが,今回はタイトルの通りノベルゲームをさくっと作ってみたいと思います!というのも,筆者が2次元がとにかく大好きでして..アニメの世界に入りたいな..ナーヴギアの開発はまだかな..なんて思うことは日常茶飯事です(笑)ですが,現在のノベルゲームって選択式のものが多いじゃないですか.正直「私そんなこと言わないし」って思うことが多いんですよね(笑)ってことで,自分で文字入力が出来るノベルゲームを作っていきたいと思います!
なお今回はシステムの作成がメインのため,キャラとユーザーの対話部分の精度に関してはご容赦ください.

## 参考
ノベルゲームを作成する既存のサービスとして,[ティラノスクリプト](https://tyrano.jp/)などがあります.今回はただ物語を追うのに加えて,さらにユーザーも自分のセリフを入力できるノベルゲームを作っていこうと思います!

## 注意
– イラストは,筆者の友達に描いてもらった完全オリジナルイラストです.
– ユーザーのキャラネームは「柳ユカ」です.

元記事を表示

画像処理を使ったペット見守りアプリを作ってみた

# はじめに
この記事はNTTドコモ R&D Advent Calendar 2021の21日目の記事です。

こんにちわ、NTTドコモ サービスイノベーション部の川嶋です。普段の業務では画像認識技術の研究開発やそのサービス化に取り組んでいます。
最近、外出時にペットが元気にしているか気になって仕方がないので、遠隔でペットの様子を観察できるアプリケーションを作ってみたいと思います。
なお、本記事の執筆にはデグーのぎんちゃんに多大なご協力をいただきました。この場をお借りして深く感謝いたします。

# この記事は何?
下記のAWSサービスを組み合わせて開発したペット見守りアプリケーションの実装例の紹介です。

– Amazon Kinesis Video Streams
– Amazon API Gateway

元記事を表示

pythonライブラリの作成方法

MYJLab Advent Calendar 2021 12日目の記事です。

論文が書き終わらず瀕死のmoffyが担当します。なので内容薄めです。ごめんなさい?

そんでもって2番ぜんじの記事になりますがご容赦を。

## ライブラリの作成方法
宮治ゼミ内ではほとんどの人が使っていると思われるpython。めちゃ便利ですよね。

機械学習では主流、できること多いし、メモリのことも考えなくていいし、型もつけなくて動く、何なら日本語の変数名をつけても大丈夫。

プログラム初心者からしたら使いやすいことも違いなしのプログラム言語ですが、こいつはツール作成の分野でこそ一番輝きを発すると思います。

よって今回はライブラリ作成方法のご紹介です。この記事では例として宮治先生(ゼミ)のwebサイトにアクセスしてhtmlをgetするライブラリを作成します

##ファイル構成
この記事では例としてget_myjというライブラリを作成します。

![スクリーンショット 2021-12-20 17.09.40.png](https://qiita-image-store.s3.ap-northeast-1

元記事を表示

Selenium Python IDもnameもない場合

IDもnameもわからない場合はxpathを使います。
日記がてら実際の写真も交えてメモします。キャプチャみただけで懐かしくなります。

一番よく使うのが
##タグ名+クラス名
###例:divタグのクラス名がp-booking-calendar__calendar-navi

もちろん divタグでクラス名がp-booking-calendar__calendar-naviの要素が一つしかないものとします。

“`python
driver.find_element_by_xpath(“//div[@class=’p-booking-calendar__calendar-navi’]”)
“`

実際の画面はこちら
カレンダーの次へボタンを押したかったのです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/369082/d14758fd-2814-24b5-328b-eaf95caebfd5.png)

実際のソースはこち
![image.png](https://qiita-

元記事を表示

[UE4] PythonからプロジェクトのC++クラスへアクセスする方法

検証バージョン:UE4.26.2, UE4.27.2

#1. 概要
 Pythonを利用してEngineクラスにアクセスする方法は以下のドキュメントにあります。
https://docs.unrealengine.com/4.27/ja/ProductionPipelines/ScriptingAndAutomation/Python/

 本記事ではプロジェクトに作成したC++クラスの変数や関数にアクセスする例を示します。

#2. 目標
 最終的にやりたいことは**「コンテンツブラウザから選択した”C++クラス (AMyActor) を継承したBlueprintクラス (BP_MyActor) “に対してPython経由で変数をセットしたりネイティブ関数の呼び出しを行う」**です。

【コンテンツブラウザ上の表示】
![2021-12-21_03h25_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101019/4c1f647a-456b-b059-cd83-c39bd0494f0c.png

元記事を表示

呼称の違う連想配列系の単語でググってみた

# はじめに

**「Pythonの連想配列って何だっけ?」**

という(なんとなく、気持ちの悪い)ワードが、頭をよぎったときに、

**[ググって解決しづらかったこと Advent Calendar 2021](https://qiita.com/advent-calendar/2021/gseach)**

を思い出したため、 **勢いでエントリー** しました。

 

当初は、各言語での連想配列系の呼び方の違いを記事にしようかと考えましたが、

既に、そのような、まとめの良記事は存在しています。

https://techracho.bpsinc.jp/hachi8833/2020_07_31/95098

https://qiita.com/dico_leque/items/86fc0e48f827c3c08f4e

 

では、ネタ記事として、

**本当にあった怖い検索結果 ~pythonの連想配列~**

とかを書こうとも思いましたが、明らかな怪文書が検索結果に表示されるわけではない[^1]ため、

釣り記事になってしまう ~~?怖い~~ と、断念。

[^1]: 本

元記事を表示

ABCの類似度の高い問題を推薦する拡張機能

## 目次
1.[はじめに](#1-はじめに)
2.[作ったもの](#2-作ったもの)
3.[ASPRの仕組み](#3-ASPRの仕組み)
4.[拡張機能を作ってみて](#4-拡張機能を作ってみて)

#1. はじめに
###筆者のプロフィール
– 大学3年
– AtCoder __茶色__
– 最近Webアプリの勉強もしています

#2. 作ったもの
### [AtCoder Similar Problem Recommender(ASPR)](https://greasyfork.org/ja/scripts/431708-aspr)
 
タイトル通り、問題ページに行くと類似問題タブが表示され、そこから類似問題のページに飛べるようになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1311765/ab985d13-dc53-5b1d-5347-cc6df393895f.png)

クリックするとAB

元記事を表示

浮動小数点形式の演算結果として +0 と -0 が出てくる規則

**お断り:ここでは非数と無限大については考慮していません。**

# IEEE-754 倍精度浮動小数点形式

Python の float や JavaScript の Number は IEEE-754 倍精度浮動小数点形式となっています。

| 符号部(S) | 指数部(E) | 小数部(T) |
|:-:|:-:|:-:|
| 1 ビット | 11 ビット | 52 ビット |

式で表現すると

“`math:
\left( -1 \right)^{S} \times 2 ^{E-1023} \times \left( 1 + \frac{ T }{ 2^{52} } \right)
“`

になります。($E=0$の場合を除く)

# 浮動小数点演算器(FPU)の挙動

浮動小数点演算器(FPU)はどのような計算をしているのか考えます。

## 乗除算

指数部と小数部を考慮せず、符号部に注目すると

| 計算 | 被乗数 | 乗数 | 結果 |
|:-:|:-:|:-:|:-:|
| 正 × 正 = 正 | 正(S=0) | 正(S=0) | 正(S=0) |
|

元記事を表示

面倒な双一次変換の計算はPythonにやってもらおう

![dynamics-890×500.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/484973/fd71e4c1-342c-58fc-9487-9f4953e8e9c8.png)
上の写真の系について,運動方程式は,

$$ M \ddot{x} + B \dot{x} + K x = f $$

ですね.ではこの物体を人間が握るものとして,アドミタンス提示型のインピーダンス制御をかけるましょう.つまり,アクチュエータを用いて任意の$M,B,K$を表現したいのです.入力を$F(s)$,出力を$\dot{X}(s)$とすると,伝達関数$G$は

$$ G = \frac{s}{Ms^2 + Bs + K} $$

という2型になります.(本当は剛性いらないので1型にできるが…)
そろそろ本題に入りますが,目標速度$\dot{x}$はどうやって計算しますか? 僕は双一次変換を使います.今回の例の正解は,

$$
\dot{x}[k] = \frac{1}{2BT_s+KT_s^2+4M} \{ 2T

元記事を表示

OTHERカテゴリの最新記事