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

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

巨人戦の観客数を予測してみた

# はじめに

元記事を表示

自作のアプリケーションの紹介

# 同窓会アプリDumpling(ダンプリン)
– 同窓会を開くための発端になるように設計したアプリケーション
– ①Twitterでログイン
– ②三つ巴の相互フォロー関係を判定して初期メンバー3人で同窓会を薦める
– ③アプリからTwitterに飛び、同窓会を開くための文言を入れて@ツイート
## 同窓会を開くための発端になるように設計したアプリケーション
![スクリーンショット 2022-07-11 13.45.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2901058/4ee76261-4ea5-5a06-9e7b-d57d5657acf9.png)
## ①Twitterでログイン
– firebaseのログイン認証でtwitter認証を用いてtwitterログインを実装
– 同時にユーザーのtwitterのidやscreenName,imageURLなども取得
![Simulator Screen Shot – iPhone 8 Plus – 2022-05-17 at 16.02.

元記事を表示

WaveNetを用いた仮想通貨自動売買(後編-自動売買の実装-)

# 1. 概要
## 1.1 前編のおさらい

https://qiita.com/SY122095/items/4cc734debbd4f78a4dcf

前編ではWaveNetを用いてビットコインの1時間足の収益率を予測するモデルを作成し、バックテストを行った。その結果WaveNetによる予測がベンチマークを上回ることがわかった。後編ではWaveNetを用いて自動売買を行うロジックを書いていく。

## 1.2 後編の内容
前回作成した予測モデルで予測を行い、実際に注文をする仕組みを記述していく。
使用するコードの詳細については下記のGitHubを参照。
https://github.com/SY122095/BTC_bot

## 1.3 開発環境と使用ツール
– Python 3.10
– SQLite3
 取引結果を格納するために使用
– GMOコインアカウント & APIキー
 データの取得やビットコインの注文に使用
– LINE Notify API
 取引が行われたときにLINEに通知を送るために使用
 以下のURLから登録
 https://notify-bot.li

元記事を表示

FastAPIでaiohttp

特に意味はないけどHTTPリクエストを平行に処理し、HTTPステータスコードを足すAPI

“`python
from fastapi import FastAPI
import asyncio
import aiohttp

app = FastAPI()

async def get():
async with aiohttp.ClientSession() as session:
async with session.get(‘http://python.org’) as response:
return response.status

@app.get(“/”)
async def main():
a, b = await asyncio.gather(get(), get())
return a + b
“`

適切にprintすれば、きちんと非同期処理できていることがわかる。

元記事を表示

FizzBuzz – HackerRank

最近何度かHackerRankでコーディングテストを受ける機会があったので、HackerRankのテストのコーディング方法について記しておく。

今回は、以下の「FizzBuzz」についてコード例を記載する。

https://www.hackerrank.com/challenges/fizzbuzz/problem
“`python:FizzBuzz
def fizzBuzz(n):
for i in range(1,n+1):
if i % 3 == 0 and i % 5 == 0:
print(‘FizzBuzz’)
elif i % 3 == 0:
print(‘Fizz’)
elif i % 5 == 0:
print(‘Buzz’)
else:
print(i)

n = int(input())
fizzBuzz(n)
“`

元記事を表示

突然だけどダイスを実装するよ

# 概要

タイトルの通り、ダイスを実装するよ。

# 仕様

– シード値は、現在のタイムスタンプをint化した値を使用する。
– シード値を明示的に指定したい場合は、コンストラクタの引数から渡すことが可能。
– 出目の最大値は、ダイスを転がす都度指定する。転がすたびに面数が変わる不思議なダイスだね!
– 出目の最小値は1。
‐ ダイスの面数=出目の最大値で、出目は全て整数値。回りくどい表現だけど「出目が2、4、6、8の4面ダイス」のようなものは想定しない、ってことが言いたい。

# とりあえず実装

こんな感じ。

“`Dice.py
”’
Created on 2022/10/08

@author: 芸夢 作郎
”’
import random
import time

class Dice():

seedValue = None

def __init__(self, aSeedValue = None):
if (aSeedValue == None):
self.seedValue = int(time.ti

元記事を表示

[python] pandasでloc, iloc, at, iat を用いた行、列の取得

# はじめに
pandas を用いてデータフレームを扱う場合、範囲を絞ることによって必要なデータのみを得ることが必要である
今回は`loc, iloc, at, iat`を用いて必要な範囲のみを指定し、範囲を絞ることを紹介する。

# 環境
window 10

“`python
import sys
print(sys.version)
print(pd.__version__)
“`
“`
3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 07:55:33) [MSC v.1916 32 bit (Intel)]
1.3.5
“`
# Code

“`python
import pandas as pd

df = pd.read_excel(‘./data.xlsx’, index_col = 0)
df
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821152/eeed5176-eac9-d58a-e6e0-6d81f8

元記事を表示

BERTが理解していそうな慣用句を調べてみる

# はじめに
慣用句といえば「猿も木から落ちる:その道にすぐれた者でも、時には失敗することがあるということのたとえ[^1]」というように、背景の出来事や知識(例:猿は木登りが上手い)を前提にした表現のことを指します。

[^1]: https://www.weblio.jp/content/%E7%8C%BF%E3%82%82%E6%9C%A8%E3%81%8B%E3%82%89%E8%90%BD%E3%81%A1%E3%82%8B

これらの表現は比喩的な表現となっていて文字通りの意味として用いられていないことが多く、自然言語処理的には難しい対象であることには間違いないでしょう。

今回は事前学習された日本語BERTのモデルが、すでにどの程度慣用句に対しても意味表現を獲得しているのか調べてみたいと思いました。

# 慣用句とその説明を集める
以下のリンクに掲載されている慣用句を対象にしました。

https://www.weblio.jp/phrase/%E6%85%A3%E7%94%A8%E5%8F%A5_1

これらの慣用句に対して、Weblio類語辞書の「意義素」の説明をその慣

元記事を表示

特定環境下でArduinoのシリアルポートにアクセスできないときのメモ

# 概要
Arduinoにシリアル通信させるプログラムはArduino IDEで書き込めたけど、Arduino IDE以外からシリアルポートにアクセスできなくなった対処の話。

類似事例が無いか軽く調べてみたけど引っかからなかったので需要があるんじゃないかと記録する。

# 状況発生環境
検証のための再現環境構築はしていない。シリアルポートがらみの主要登場人物から推定。
– Windows10
– Arduino IDE2.0.0
– Keysight IO Libraries Suite2022(多分主犯)

# 状況
Arduinoにシリアル通信でメッセージを送ってリレー制御したり、Arduinoの動作状態を返信するプログラムを書いたときに発生。

Arduino IDEでプログラムを書き込んで、Arduino IDE付属のシリアルモニタでメッセージを送って期待通りの動作をしていることを確認。

で、上記Arduinoを含めて複数の測定器を連動させたプログラムを作る段階で問題発生。

# 不具合現象(シリアルポートが開けない)
デバイスマネージャー上でArduinoのシリアルポ

元記事を表示

asyncioに入門する

公式ドキュメントの説明やサンプルコードをベースに、asyncioに入門します。

# asyncio — Asynchronous I/O

*asyncio は、 async/await構文を使用して並行コードを作成するためのライブラリです。*

まずは公式のサンプルコードを動かしてみましょう。

“`py:Hello World!
import asyncio

async def main():
print(‘Hello …’)
await asyncio.sleep(1)
print(‘… World!’)

asyncio.run(main())
“`

以下のように出力されます。1行目と2行目の出力の間には1秒空いていました。

“`sh
Hello …
… World!
“`

短いサンプルコードですが、(asyncioを全く使ったことがない人にとっては)見慣れない記述がいくつもあります。

– ①`def main():`の前に付いている`async`とは何か
– ②`await`とは何か
– ③`asyncio.slee

元記事を表示

Python × RevitAPI でGUIをつくる

# 目次
[__1. はじめに__](#はじめに)
[__2. rpw.ui.forms.__](#-rpwuiforms)
[__3. Revit.UI.__](#-revitui)
[__4. Matplotlib__](#-matplotlib)
[__5. WPF__](#-wpf)
[__6. Tkinter(使えない)__](#-tkinterpyrevitでは使えない)
[__7. PySimpleGUI(使えない)__](#-pysimpleguipyrevitでは使えない)
[__8. 参考リンク__](#参考リンク)

# はじめに
DynamoのPythonスクリプトやpyRevitでGUIをつくる方法を紹介します。本記事のコードはDynamo2.12(Revit2022)で動作確認しています。

# ★★★ rpw.ui.forms.
PyRevitには __RPW(Revit Python Wrapper)__ というライブラリがデフォルトで搭載されており、これを使ってシンプルなGUIを簡単に作成できます。WPFを利用して実装されているため **iro

元記事を表示

AIに描かせた絵をAIでリアルタイムなフェイストラッキングで動かしてみた -手間を掛けずにバ美肉する方法-

## はじめに
流行りに乗り遅れている感じはするのですが、もはやバ美肉は一般的な営みになりつつありますね。
最新のAIというのがなんかすごいらしいので、試しにこれを使ってバ美肉してみたいと思います。

ちなみにこのツイートを見て思いつきました。

WaveNetを用いた仮想通貨自動売買(前編-学習-)

# 1\. はじめに
仮想通貨の値動きは株式やFX等の既存の金融市場と比べて激しいため、上手く値動きを予測してシステムトレードを実装すれば高い収益を得られるのでは?と考えこの記事を作成しました。

## 1.1 記事の概要
本稿では前編と後編にわたってディープラーニングを用いた仮想通貨の収益率予測とPyhonによる自動売買Botの実装について書いていきたいと思います。今回の前編で予測モデルの作成を中心に行っていき、次回の後編では自動売買をしていきます。

## 1.2 構成
前編
 WaveNetと呼ばれる深層学習により仮想通貨の1時間足の収益率を予測するモデルを構築し、結果の検証を行う。また作成した予測モデルを使って特定の時間の予測結果を返す簡易WEBアプリをFlaskを使って作成する。

後編
 前編で作成した予測モデルを用いて自動売買を行うスクリプトファイルを作成する。

https://qiita.com/SY122095/items/28b262bf971ed7f4ebeb

## 1.3 環境・使用ツール等
1. Python3.9
1. google colaborato

元記事を表示

【Python】Tornadoで非同期通信を行なうAPIをつくりAPIサーバーを建てる

#### 背景

同時接続数の多いシステムではパフォーマンスを求められますが、そのような際には非同期通信なるものを使うと良いと非同期通信に対応した言語やライブラリを幾つかご教示いただきました。
今回はその非同期通信を行なうAPIを作成した際のメモです。

先人たちの知恵をお借りするなどして解決できたことを、この場をお借りして感謝するとともに、大変恐縮ですが**自分のメモ**として、こちらへまとめておきます。

### 1.非同期通信とは

> “ネットワークなどでつながれているコンピュータ間で、送信者のデータ送信タイミングと受信者のデータ受信タイミングを合わせずに通信を行う通信方式。
>
>  同期通信はデータ通信のリクエストを出してからレスポンスが来るまでほかの処理を行わずにレスポンスを待ち続けるが、非同期通信ではレスポンスを待っている間にほかの処理を行える。ほかの処理を行っている際に、レスポンスを受信すると受信処理を実行する。
>
>  通信方式は、送信者が通信データにデータの始まりを示す「スタートビット」とデータの終わりを示す「ストップビット」という信号を付加してデータを送信

元記事を表示

前処理、後処理を含めたDBSCAN関数化

# はじめに
 DBSCANは、密度ベースのクラスタリング手法の1つです。sklearnライブラリを用いることで簡単に実装できます。…できますが、前処理(正規化)や後処理(クラスタリング結果とデータの紐づけ、クラスタごとにデータの分割)を毎回行うのが面倒だなー、と思ってます。
 ですので、今回の記事は前処理・後処理を含めて2次元配列を対象としたDBSCANを関数化を行いました。

 今回の記事では、関数化にフォーカスを当てて記事を作成するため、理論的な部分については最低限となります。

## DBSCAN
 クラスタリングといえば距離ベースのk-meansが有名ですが、外れ値との相性がよくない・クラスタ数をしてする必要があり、結果への影響が大きい などのデメリットがあります。(理解しやすく実装しやすい・大規模なデータセットをうまく扱える などのメリットもあるため、全然使えないと手法ではありません。)
 DBSCANは、密度ベースのクラスタリング手法で、データ点の密集領域を1つのクラスターとし、逆に低密度の領域はノイズとみなすという手法です。
 外れ値を簡単に特定できノイズの多いデー

元記事を表示

ROS:サービスを使った点群の座標変換

# ROS:サービスを使った点群の座標変換
この記事では`ROS`のサービスを使って点群等を座標変換する方法について説明します.

## 環境
Ubuntu18.04
ROS(Melodic)
Python 2.7.x

## 前準備
本記事では事前に静的な座標変換を行っていることを前提としています.
各センサを起動する`launch`ファイルに`static_transform_publisher`を用いて座標変換を記述してください.

## 概要

`ROS`では`link`同士の座標変換を行うときには主に[`tf`](http://wiki.ros.org/ja/tf)と呼ばれるライブラリを使用します.これを用いると`source`と`target`を指定するだけで座標変換をすることができます.[前回](https://qiita.com/HorimotoHiroto/items/84ae0702c63eb81a1ea5),`Python`で任意の一点を座標変換する方法について投稿しましたが,これを全部の点に使用するとかなりの時間がかかります.また,`tf2`を使うと`doTra

元記事を表示

ChArUco マーカーボードで位置推定

# ChArUcoとは

公式Doc: https://docs.opencv.org/3.4/df/d4a/tutorial_charuco_detection.html

![charucodefinition.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188173/c7c0c06f-b45b-f6c6-48ca-bcc00b7d09ac.png)

> The ArUco part is used to interpolate the position of the chessboard corners, so that it has the versatility of marker boards, since it allows occlusions or partial views. Moreover, since the interpolated corners belong to a chessboard, they are very accurate in terms of sub

元記事を表示

4行のコードでAI物体検出を使う方法【Python,Yolov5】

# 物体検出を使ってみたい
プログラムが自動で画像から物体を見つけてくれる物体検出、色々な分野で使えます。
![6ffb75b6-a203-4b7f-b512-504062e15991.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/f423d4dd-f299-a6cb-48ee-82686f5bc477.jpeg)

# AIを使うのは難しそう
何行もコードが必要と思うじゃないですか。

# 実はめちゃくちゃかんたん
すごくかんたんに使えるようになっています。
今回は**Yolov5**を使います。

https://github.com/ultralytics/yolov5

# 方法

torch hubからモデルをロードして、画像を入力として与えます。

“`python
import torch
model = torch.hub.load(‘ultralytics/yolov5’, ‘yolov5s’) # initialize model
result = model(‘t

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのビット演算の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのビット演算の比較

# Python

https://qiita.com/7shi/items/41d262ca11ea16d85abc

# Ruby

https://qiita.com/jkr_2255/items/8e29dce1999f3f6b69ad

# PHP

https://qiita.com/mpyw/items/ce626976ec4dc07dfec2

# Java

https://qiita.com/Ingward/items/43acda931c8a62c70d2f

# JavaScript

https://qiita.com/41semicolon/items/c1a16f220d4545410ddc

# Perl

https://perlzemi.com/blog/200808061

元記事を表示

OTHERカテゴリの最新記事