Python関連のことを調べてみた

Python関連のことを調べてみた

AtCoder ABC351 C問題

https://atcoder.jp/contests/abc351/tasks/abc351_c

![2024_04_28 ABC_351_C問題.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3768836/51dedc1b-ff52-8807-d3b2-d51e5db6c49e.jpeg)

普通に2**a[i]リストに追加すると処理が重くなる。2**a[i]のうち2の部分は他と変わらないので、a[i]だけ見る。
後は問題文を素直に実装してAC。

元記事を表示

Python ツール#1 ― 簡単なソースコードカウンター

# Python ツール#1 ― 簡単なソースコードカウンター

Python スクリプトで簡単なソースコードカウンターを開発しました。
世の中にもソースコードカウンターは多々ありますが、自由に整形できるようにしておきたい(例えば、Excel に出力したい)ので、自作してみました。

## 世の中のソースコードカウンター

かなり便利そうです。

https://qiita.com/uctakeoff/items/8cc61ab816f6eb4e1f31

https://qiita.com/maxfie1d/items/af14f33de6d5bae28b35

## 自作するに至った動機

少量の Python スクリプトコードで自分の好みに合わせたソースコード分析ができるような仕組みを作り、その仕組みを利用してソースコードカウンターを作り上げたかったです。

* 結果を Excel に出力したい。
* UTF-8 のソースコードファイルと SHIFT-JIS のソースコードファイルが混在していても、処理てきるようにしたい。(注1)
* 将来的に特殊な処理も実装できるようにしたい。

元記事を表示

Python ツール#0

# Python ツール#0

時々、公私で Python スクリプトのツールを作成しています。
私的に作成したツールについて、完成したら公開してみようと思います。

# 掲載予定

Python ツール#1 ― 簡単なソースコードカウンター

## 説明で使用するソースコードのライセンス

MIT License

Copyright (c) 2024 Hirotoshi FUJIBE

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or se

元記事を表示

mt5linuxでcopy_ticks_rangeできない

リモート側でdatetimeがインポートされていないから、copy_ticks_rangeできない。
なんとも粗削りな実装だが、ゼロから書くよりは全然助かる。

“`
# mt5linux/__init__.py
# 366行目に追加
self.__conn.execute(‘import datetime’)
“`

結局mt5linuxは使うのをやめて、Windows+WSL2にするので、無用のノウハウとなったが。

元記事を表示

環境をUbuntu22からWSL2+Ubuntu22に移行した

忘れないように、メモ。
Windows用のGPUドライバとPythonインタプリタはインストール済である前提。

# 必要なバージョンの確認

Tensorflow、Python、cuDNN、CUDAのバージョン対応表
https://www.tensorflow.org/install/source#gpu

この対応表の組み合わせでインストールすれば、CPUが有効になる。
例えばPython3.11(3.9-3.12)の場合、tensorflow-2.16.1、cuDNN8.9、CUDA(Toolkit)12.3で良い。

# CUDA

CUDA Toolkit 12.3 Downloads
https://developer.nvidia.com/cuda-12-3-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local

こまかな手順はリンク先に掲載されている。

# cuDNN

cuDNNは通

元記事を表示

[レビュー分析] 六本木の叙々苑ってどこ行けばいいの?

# はじめに

ReviewAI (レビューアイ) で食べログのレビューができるようになりました!
せっかくなので、六本木の叙々苑 3店舗のレビューを分析して、
どの店舗に行くべきなのかを考えたいと思います。

## ReviewAI (レビューアイ)

弊社 RetegyLink が開発中のレビュー分析 AI です。
[https://reviewai.next-seed.work/](https://reviewai.next-seed.work/)
アルファ版を公開中で、現在は[食べログ](https://tabelog.com/)さん、[じゃらん](https://www.jalan.net/)さんに対応中です。

## 食べログ

言わずと知れた、レストラン検索・予約サイトです。
レビューが多く集まっており、多くの人が利用している印象です。

# レビュー分析

六本木の周辺には、

– 叙々苑 六本木本店
– 叙々苑 麻布十番店
– 游玄亭 西麻布本館

の3店舗の叙々苑がありますが、それぞれ、どのような違いがあるのでしょうか?

## 叙々苑 六本木本店

![imag

元記事を表示

疫学の教科書に載っていた数理モデル

前に因果関係で疫学について書きましたが

https://qiita.com/murasaki1994/items/267a200ad9075fbcc613

疫学は原因と結果を繋げる学問で、そこに多変量解析が載っているので紹介してみたいと思います。
医学書院にある『基礎から学ぶ楽しい疫学第4版』の第10章では多変量解析について取り扱われています。
![108378.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2782889/d59b1001-9b22-29de-ea3f-762961f0f2db.jpeg)

第10章は「疫学に必要な統計」で、その中の多変量解析の中身を今回取り扱います。
使用する数理モデルは以下の4つです。
– 重回帰分析(OLS)
数量データをそのまま従属変数に用いたもの
– ポアソン回帰
層化を用いた多変量解析に利用される
– ロジスティック回帰
2値データ(疾患の発生/非発生, 症例/対照, など)を従属変数に用いるもの
– Cox比例ハザードモデル
2群間の生存曲線を比較す

元記事を表示

ED法の学習速度を8倍高速化する行列計算の改良

今回、Winnyの開発者である金子勇さんが考案したED法というニューラルネットワークの学習アルゴリズムの高速化に取り組みました。

以下の記事に質問をさせていただき、その改良も出たので、もう不要な記事かもしれませんが、投稿いたします。
(せっかく書いたので…初投稿です…お手柔らかに…)

以下の記事を参考にしました。
https://qiita.com/pocokhc/items/f7ab56051bb936740b8f#comment-324d0ec655a40e439ac8

その中で速度について質問したところ「改良の余地がある」というご回答でした。
そこで、行列の計算を改良してみて、精度と速度にどのような違いがあるかを確認してみました。

コードは以下のようになっています。

全体コード

“` python
import math
import random

import numpy as np
import pandas as pd
import tensorflow as tf
from matplot

元記事を表示

小道具: アルファベットの全角文字を半角文字に変換

Qiita CLI 向けです。

Qiita の編集画面で全角のアルファベットが注意されるようになっていたので、**全角アルファベットだけ**を半角にするものを作ってみました。(探せば良いツールがあるでしょうけど…)

コマンド ラインで変換したいファイル(複数:UTF-8のみ)を指定すると

– 入力ファイル: file.ext
– 出力ファイル: file.qaf2h.ext

として変換します。変換不要な場合はスキップします。

“`python:
#!/usr/bin/env python3

import argparse
import os

TABLE = {chr(c+0xfee0): chr(c) for s in (0x41, 0x61) for c in range(s, s+26)}

parser = argparse.ArgumentParser()
parser.add_argument(‘files’, metavar=’FILE’, nargs=’+’)
args = parser.parse_args()

for ifile in args.fi

元記事を表示

ABC348備忘録【C~D】

## C – Colorful Beans
### 問題
https://atcoder.jp/contests/abc348/tasks/abc348_c

### 考えたこと
各色の最小値をdictに保存します。そこから最大値を求めれば終わりです。

### ACコード
“` c.py
from collections import defaultdict

n = int(input())
d = defaultdict(lambda: float(“inf”))

for _ in range(n):
a, c = map(int, input().split())
if d[c] > a:
d[c] = a

print(max(d.values()))
“`

### D – Medicines on Grid
### 問題
https://atcoder.jp/contests/abc348/tasks/abc348_d

### 考えたこと
どの薬から自分以外のどの薬までいけるかを考えればうまくいきます。手順としては各薬をスタートにし

元記事を表示

Heroku有料化後の後継サービス有力候補とウワサを聞いたRenderを使ってみた

Qiitaに投稿されている記事でRender使えば簡単にWebサービス公開環境を作れるよっていうのを読んで、早速試しにやってみたわけです。

https://qiita.com/kizataka/items/10693e87f726a95499e4

あまり複雑なヤツだと何が原因で失敗しているかがよくわからんくなるので、今回はごぐごく簡単なflaskを使ったのをデプロイしてみました。

https://qiita.com/tonytani37/items/a9c7fafa3be582353771

https://qiita.com/tonytani37/items/b1e2b72b2465799271d0

資源はGithubにあるので、そいつを使ってちょいちょいとできるもんだと思ってたけれど、ちょっと失敗した部分があったから、そいつを忘れないように今回は忘備録ってことで書いてます。

今回デプロイしようとしたレポジトリの構成は以下の通り。

“`
main
|
– app
| |
| – hazardmap.py
| – requirements.tx

元記事を表示

command not found: pip / command not found: python を解決する

## 問題

以下の環境。

– 2024年4月28日時点
– python latest stable 3.12
– MacBook M2 Pro

Python でpip installができない。

“`
$ pip install openai
zsh: command not found: pip
“`

Pythonがインストールされていないか、Pythonのパスが正しく設定されていない。

“`
$ python –version
zsh: command not found: python
“`

## 解決策

自分の場合、以下の1と2の両方の手順を踏む必要があった。

### 1. python と pip を入れる

Python がインストールされていないので、Homebrewを使用してインストールする。

“`
$ brew install python

==> Installing python@3.12
==> Pouring python@3.12–3.12.3.arm64_ventura.bottle.tar.gz
Warning

元記事を表示

記載した記事についてのお詫び

# はじめに
先日、私がアウトプットしたい一心で投稿した記事が著作権侵害にあたるというご指摘をいただきました。

確かにその通りでご指摘を紳士に受け止め猛省しております。該当の記事は削除し今後技術書の内容は引用にとどめマナーをしっかりと守って記事を投稿していきます。

元記事を表示

GPTsのデータ集計能力を検証してみる

GPTsに生データを取得できるAPIを呼び出させてその結果を集計し、回答をする仕組みを構築しようとしたところ、集計結果が不正確であることがあった。

そこで、今回はAPIから返されるデータ量が多いと集計結果の不正確さが増すのではないか、という推論を元に検証した結果を共有しようと思います。

# そもそも何をやろうとしていたのか

とある、Webサービスにおいてユーザーの行動分析データを収集しており、そのデータに基づいて回答をするGPTsを作成したかった。

データは下記のように定義されている(GPTsに設定したAPI定義)
“`json
{
“openapi”: “3.1.0”,
“info”: {
“title”: “行動データ取得”,
“description”: “記録された生の行動データを取得する”,
“version”: “v1.0.0”
},
“servers”: [
{
“url”: “https://xxx”
}
],
“paths”: {
“/api/action”: {

元記事を表示

【Atcoder初心者向け】入力コードの書き方

私自身、友人の紹介でAtcoderを始めたとき、まず入力の仕方がわからず困っていました。同じことで悩んでいる方も多いと思い、本記事では入力別に、pythonの入力コードを紹介します。

## Atcoderとは
Atcoderとは国内の競技プログラミングサイトです。誰でも無料で簡単に参加でき、問題の正答数や解答時間に応じて、レートが設けられています。

https://atcoder.jp/?lang=ja

## パターン別入力方法
入力は大きく分けて**複数入力**、**配列入力**、**行列型入力**の3パターンがあります。

### 複数入力

“` python
w,b=map(int,input().split())
“`

複数入力には**map関数**を用い、split()は要素間に空白をあけて入力

元記事を表示

Pythonの備忘録 (超初心者) <入出力>

僕がPythonの使い方をド忘れした時のための備忘録を作成します。

ざっくりPythonの使い方は下の図で表したような感じになっています。
![スクリーンショット 2024-04-22 9.56.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575336/20647be7-dfde-97ee-3afd-5fe0101e5bfe.png)

:::note warn
あくまで上記はイメージです
厳密さを必要とする場合は下記LINKを参照してください。
https://www.python.org/
:::

数字を出力

“`python
print(1)
“`
:::note info
出力
1
:::

文字を出力

“`python
print(Hello world!)
“`

元記事を表示

Trendlnでビットコインのトレンドラインを引く

# ■ 概要
Trendlnでビットコインの転換点とトレンドラインを引く

一連のコードは↓

https://github.com/xx-z/cryptocurrency-analysis/blob/master/trendln.ipynb

# ■ 環境
device : Mac book air 2022
yfinance : 0.2.12 (Released: Feb 16, 2023)
pandas : 1.3.5

# ■ 実装
## ( 1 ) データ収集 & グラフの表示
### ● データ収集
yfinanceでビットコインのデータを収集しました。
データの詳細としては、2022年の日足のデータを収集しました。
“`
!pip install yfinance
“`
“`python
import yfinance as yf
import pandas as pd
import trendln
import matplotlib.pyplot as plt

#取得するデータ詳細
name = ‘BTC-USD’
start = ‘2022-11-01’
en

元記事を表示

JCAMP-DX形式のテキストをPythonでJSON化してPlotlyで可視化してみる

こんにちは。Kaneyasuです。

最近はいろいろな形式のデータに触れさせていただき、毎日てんやわんやしております。

今日は、タイトルの通りJCAMP-DX形式のテキストをPythonでJSON化してJavaScriptで可視化してみようという話をお送りします。

# JCAMP-DXとは

JCAMP-DXは、分光データを保存するために作成されたテキストベースのファイル形式です。

https://en.wikipedia.org/wiki/JCAMP-DX

分光データとは光の電磁波スペクトルを測定したデータのことです。
詳しい解説は専門の文献を参照してください。

# 本記事のソースコード

本記事のソースコードはGitHubに一式をアップしています。
ソース全体と使用方法はこちらをご覧ください。

https://github.com/satoshi256kbyte/jcampdx-api-sample

# JCAMP-DXとJavaScript

JavaScriptには可視化用のライブラリが揃っています。
そのどれかを使って、JCAMP-DX形式のテキストを可視化する

元記事を表示

ABC351をPythonで(A~D、F)

AtCoder Beginner Contest 351の解答等のまとめ

https://atcoder.jp/contests/abc351

# A問題
先攻がとった点数から後攻がとった点数を引くと後攻が引き分けになるための点数になる。
よってそれに1を足せばいい。
“`python:A
print(sum(map(int, input().split())) – sum(map(int, input().split())) + 1)
“`
# B問題
全て調べて違う座標を表示すればいい
“`python:B
n = int(input())
a = [input() for _ in range(n)]
b = [input() for _ in range(n)]

for i in range(n):
for j in range(n):
if a[i][j] != b[i][j]:
print(i + 1, j + 1)
“`
# C問題
数の変化の仕方に気を付けて愚直にやる
“`python:C
n = int(

元記事を表示

pythonの基本

あまり知らかったが常識として以下をメモしとく
## PythonでのTrue, False
“`
print(1==1 or 2==1) #True
print(1==1 or 2!=1) #True
print(1!=1 or 2==1) #False
print(1!=1 or 2!=1) #True

print(True or False) #True
print(True or True) #True
print(False or False) #False
print(False or True) #True

print(True and False) #False
print(True and True) #True
print(False and False) #False
print(False and True) #False
“`

元記事を表示

OTHERカテゴリの最新記事