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

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

各言語ごとの文字列

| |C#|JavaScript|Perl|Python|
|—|—|—|—|—|
|リテラル|[“”文字列”“](#c)|[“”文字列”“ or “’文字列’“ or “ `x=${x + 1}` “](#javascript)|[“”文字列”“ or “’文字列’“](#perl)|[“”文字列”“ or “’文字列’ “](#python)|
|結合|[「+」演算子](#c-javascript-python)|[「+」演算子](#c-javascript-python)|[「.」演算子](#perl-1)|[「+」演算子](#c-javascript-python)|
|大規模な結合|[StringBuilder を使用](#c-1)|[+= で結合](#javascript-1)|[文字列に .= で結合](#perl-2)|[“””.join(iterator)“ を使用](#python-1)|
|比較|[==, !=, >, >=, <, <=](#c-2)|[==, !=, >, >=, <, <=](#java

元記事を表示

あー、キュビズム作品の定量的な特徴知りてぇーー

# はじめに

今回使用したGoogle Colabのリンクは[こちら](https://drive.google.com/file/d/1K2kKQ6wJcERnzMMC_hIxTey_y3wR5dfQ/view?usp=sharing)

皆さんは、キュビズム(Cubism)という芸術運動と、その運動の中で使用された絵画の表現手法を知っているでしょうか?
キュビズムとは[Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A5%E3%83%93%E3%82%B9%E3%83%A0)によると、
>キュビズム(仏: Cubisme; 英: Cubism「キュビズム、キュービズム」、立体派)は、20世紀初頭にパブロ・ピカソとジョルジュ・ブラックによって創始され、多くの追随者を生んだ現代美術の大きな動向である。多様な角度から見た物の形を一つの画面に収めるなど、様々な視覚的実験を推し進めた。

とのことです。
キュビズムの絵画は幾何学的な模様を多く含む、特徴的な見た目をしています(図1)。

集合同士の類似度を測る

# 集合同士の類似度の指標

| 名称 | 説明 |
| ————– | ——————————————————————– |
| ジャッカード係数 | 二つの集合の共通要素の数を、それらの和集合の要素数で割ったものです。この係数は、二つの集合がどれだけ似ているかを示します。|
| ダイス係数 | 二つの集合の共通要素の数の2倍を、両方の集合の要素数の合計で割ったものです。この係数は、ジャッカード係数に似ていますが、共通要素をより重視します。 |
| オーバーラップ係数 | 二つの集合間の共通要素の数を、それらのうちの小さい方の集合の要素数で割ったものです。これは、片方の集合がもう片方の集合にどれだけ含まれているかを示します。 |

“` python

# 集合の例
set_A = {‘apple’, ‘orange

元記事を表示

AWS Lamda関数作成入門してみます。 Part.2

# 前回のおさらい
[前回投稿した記事](https://qiita.com/keitootiek/items/344926115355acb33934)の続きです。

前回はPracticeLamdaという名前のLambda関数をPythonを選択肢して作成、
コードは特に変更せずデプロイ+テストの挙動を確認しただけでした。
それだけでは何も身につかないので実際にAPI作成へチャレンジしてみます。

## 日本の祝日取得APIを作成してみる
前回の続きから作業していきます。
![スクリーンショット 2024-04-15 18.04.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3511203/fa77158d-992b-e9c0-2779-68f3cc9013a8.png)

テストのタブを選択→新しいイベントを作成へ
「PracticeLamdaEventTst」という名前のイベントを作成します。
![スクリーンショット 2024-04-15 18.27.08.png](https://qii

元記事を表示

【Python】S3の署名付きURL発行時にダウンロード時のファイル名を指定する方法

[ドキュメント](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-presigned-urls.html) にもやり方が書いていないので残しておきます。

Paramsパラメータに `’ResponseContentDisposition’: f”attachment; filename = ファイル名”` を設定します。
※ ファイル名をURLエンコードするのを忘れないように注意。

“`python
from urllib.parse import quote
filename = quote(“サンプルファイルだよ.txt”) # ファイル名をURLエンコード

presigned_url = s3_client.generate_presigned_url(
ClientMethod = “get_object”,
Params={
“Bucket”:get_env().output_app_bucket,
“Key”:os.path.join(

元記事を表示

Pythonで「ファイルやディレクトリの存在を確認する」の動作を確認してみた

# 概要

Pythonで「ファイルやディレクトリの存在を確認する」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/python/file/index7.html

# 実装

以下のファイルを作成しました。
“`sample.py
import os
import pathlib

path1 = ‘./test/address.txt’
if os.path.exists(path1) :
print(path1 + ‘は存在します’)
else :
print(path1 + ‘は存在しません’)

path2 = ‘./test/user.txt’
if os.path.exists(path2) :
print(path2 + ‘は存在します’)
else :
print(path2 + ‘は存在しません’)

path3 = ‘./test/img’
if os.path.exists(path3) :
print(path3 + ‘は存在します’)
else :
print(path

元記事を表示

ラズパイ5+Pythonで2つのカメラによる同時撮影をする[RaspberryPi5][Python][OpenCV][picamera2]

# この記事でわかること
ラズパイ5へカメラモジュールを2つ差し,Python+OpenCVで同時に画像撮影を行う方法.
ステレオカメラやデュアルカメラとして使いたい場合に使用できます.
(検索で出てくるタイトルを変えたかったので,再投稿しました.)
# 環境
#### Python
Python 3.11.2
opencv-python 4.9.0.80
picamera2 0.3.17

#### Raspberry Pi
Raspberry Pi 5 Model B Rev 1.0
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm

# 1秒ずつ撮影をするコード
RaspberryPi上で以下のコードを実行すると,Ctrl+Cが入力されるまで1秒ごとに2つのカメラで同時に撮影を行います.

“`Python:DualCamera.py
import cv2
from picamera2 import Picamera2
imp

元記事を表示

Flask-RESTX でエラーハンドリングを扱う

# 概要
Flask-RESTX のエラーハンドリングは、(バグも含めて)かなり複雑な仕様となっている。
本記事では、Flask-RESTX を使って適切にエラーハンドリングをする方法を紹介する。

# 基本的な実装
基本的な Flask-RESTX でのエラーハンドリングの実装方法を以下に示す。
“`python:app.py
from flask import Flask
from flask_restx import Resource, Api, abort
from werkzeug.exceptions import HTTPException

app = Flask(__name__)
# Enable custom error handler for 404 and 406.
api = Api(catch_all_404s=True)
api.init_app(app)

@api.route(“/error”)
class TrivialError(Resource):
def get(self):
abort(500, “Trivial

元記事を表示

PyMCでLerouxモデルとBYM2(modified BYM)モデルを構築(地理空間データ解析)

# はじめに
最近、空間統計のお勉強をしているので、また空間統計モデルのお話をする。
以前[「衛星データでつくばみらい市の土壌分類をしてみた(地理空間データ解析)」](https://qiita.com/chicken_data_analyst/items/886d35561a4f23653dc4)という記事で、条件付き自己回帰モデル(Conditional Auto-Regressive model;CAR model)の1つ、ICAR(Intrinsic CAR)モデルについて書いたが、CARモデルには他にも種類があってICARモデルの欠点が修正されていたりする。今回はその中でもLerouxモデルとBYM2モデルを構築して、またつくばみらい市の土壌分類を実施。

過去の空間統計に関する記事は以下。

– [衛星データでつくばみらい市の変化を見てみた(地理空間データ解析)](https://qiita.com/chicken_data_analyst/items/ed3a6002e82d4ea63556)
– [衛星データでつくばみらい市の土壌分類をしてみた(地理空間データ

元記事を表示

行列分解アルゴリズム Funk-SVD, ALSを実装した

# 概要
今回は、レコメンド分野でよく利用される行列分解のアルゴリズムである **Funk-SVD**, **ALS(Alternating Least Squares)** を実装したので、その内容を備忘録的にまとめます。

# はじめに
私は情報系の大学院に通う傍ら、ECサイトを運営する企業でインターンをしております。
そして、そこで取り組んでいる主な業務内容がレコメンドシステム開発です。
とはいえ、レコメンドについて研究しているわけでもなく、アルゴリズムの実装もライブラリ任せなところがありました。
そこで今回は勉強のために、とても有名なレコメンドアルゴリズムである行列分解のうち、Funk-SVD, ALSの理論と実装を行いました。
そして、その内容を備忘録的にまとめていきたいと思います。

# 行列分解とレコメンド
行列分解とレコメンドの関係性について簡単にまとめます。
レコメンドとは、ECサイトや動画プラットフォームにおいて、 **ユーザが好むと推定される
アイテム** を提示することです。
そして、 ユーザが好むと推定されるアイテム を決めるためによく用いられるのが、
**評

元記事を表示

小甲鱼python V1.0-P4

str=””すると
str()は使えなくなる
バックスラッシュで\
\二つで\をprintできる
\は末尾にあると未完了の文字列に見られる
\を末尾につけてprintしたいなら
‘hogehoge”\\’でいける

元記事を表示

配列のIn-Placeアルゴリズム

プログラミングにおいて、データ構造の効率的な操作は非常に重要です。
特に、配列は最も基本的なデータ構造の一つであり、その中でもIn-place操作のアプローチは、追加のメモリを最小限に抑えることで、リソースの効率的な利用が可能となります。

## 配列のIn-Placeアルゴリズムの概要

新しいデータ構造を作成することなく、与えられた配列内で要素の変更、追加、削除を行う手法です。
この操作は、追加のメモリスペースをほとんどまたは全く使用しないことが特徴です。
多くの場合、配列の長さは固定で、操作を通じて配列内のデータが書き換えられます。

## 配列のIn-Placeアルゴリズムの使用例

### 反転アルゴリズム

配列の要素を反転させる最も簡単な方法は、先頭と末尾の要素を交換し、その間を徐々に狭めていくことです。

“`python
def reverse_array(arr):
start, end = 0, len(arr) – 1
while start < end: arr[start], arr[end] = arr[end], arr

元記事を表示

ChatGPTとPyMuPDFを使用したRAGチャットボットの作成

![py-blog-rag-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573216/f700a83d-a520-5eaa-4c70-25e059ba0346.png)

# はじめに
検索増強生成(**RAG**)技術と**ChatGPT**の先端API、そして**PyMuPDF**の効率的な**PDF**操作機能を組み合わせることは、知的なチャットボットを作成するための新たなフロンティアを提供します。

これらのチャットボットは、**PDF**文書に保存された膨大な知識を活用し、文脈を考慮しただけでなく、情報と洞察に富んだ応答を提供することができます。

このチュートリアルでは、**ChatGPT** **API**を利用して応答を生成し、ドキュメント処理に**PyMuPDF**を利用する**RAG**チャットボットの作成方法を案内します。これにより、これらの強力なツールを統合する際の強みと簡便さが強調されます。

# **PyMuPDF**を使用したチャットボットの設定
## チャットボ

元記事を表示

【VSCode×Streamlit】Streamlit導入のすゝめ

# streamlitとは

StreamlitはpythonのWebフレームワークで、データ分析に特化したものです。
HTML,CSS,Javascriptを必要とせず、**pythonのみでWeb開発できる**ため、非常に魅力的なものであると思います。

開発に慣れれば一日でアプリをデプロイできたりと、何かと使い勝手の良いものです。

:::note warn

streamlitではオリジナリティのあるUI設計は基本的に行えません。
デザインについて拘りたい場合は、FlaskやDjangoでの開発を推奨します。
:::

# VSCodeでの開発

開発に利用するエディタはVSCodeです。
こちらの環境構築については記事が冗長となることを防ぐため、説明を割愛します。
以下の記事が参考になるかと思います。

https://pythonsoba.tech/vscode/

また、VSCodeを利用してローカルに環境を構築するにあたり、下記の記事を参照しています。

https://kajiblo.com/streamlit-tuto1/

### 1.フォルダ作成

今回はCドラ

元記事を表示

5分で作るDiscordBot+AI応答

# 分報ってご存知ですか?
みなさんは、だれかと連絡を取るほどじゃないけど、なんとなく
「なんかお腹すいたな〜」とか
「なんか暇だなぁ〜」みたいな、
反応があれば嬉しいけど、反応が何もなくても何の問題もない。みたいなコミュニケーションを取りたいと思ったことはないでしょうか?
エンジニアの世界では「日報」よりもさらに細かく、「分報」という、何か連絡したいわけじゃないけど、現在の状況を垂れ流す文化があり、Slackなどの連絡ツールに「〜times」みたいな名前で自分用のつぶやきスペースを作り、社内版Twitterみたいな運用をしている人々がいます。

[分報のメリット・活用方法とは?書き方やslackでの運用事例を紹介](https://freelanch.co.jp/useful/times/)

最近エンジニアの友人と一緒にハッカソンに出場することになったのですが、LINEとかじゃなくて、そういう分報を書き込める場所が欲しいよね、という話になり、気軽にDiscordにそういう場所を作ってみることにしました。

# 準備
– [Discord](https://support.disco

元記事を表示

Kaggle ~タイタニック沈没事故の生存予測~ 決定木#2

こんにちは!:nerd:
前回の投稿でKaggleのタイタニックのコンペでスコアが0.73でした。
今回は前処理で「標準化」することでスコアがどう変わるのか見ていきたいと思います!

本当投稿では前回のプログラム内容を多く含むので、解説を省略して記載します。
詳細が知りたい方は前回の投稿をご覧ください。

“`rb:プログラム
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import missingno as msno
from sklearn.tree import DecisionTreeClassifier
from sklearn.preprocessing import StandardScaler

train = pd.read_csv(‘train.csv’)

train[“Age”] = train[“Age”].fillna(train[“Age”].median())
train.replace({“male”:0,”f

元記事を表示

『スルッとKANSAI』の最長片道経路を求める 【その3】

([【その2】](https://qiita.com/hamanasu/items/edbdc3538bc8b407a006) からの続き)
## 7. 駅名は違うが乗り換えができる駅
 「スルッとKANSAIご利用エリアマップ」には、”駅名は違うものの、のりかえは可能である駅”が計27駅案内されている。

![スクリーンショット 2023-08-16 12.32.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3325469/4b850d62-2311-d491-12a8-ecd0188db189.png)
駅名は違うが乗り換えができる駅(烏丸⇔四条など)

![スクリーンショット 2023-08-16 12.34.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3325469/75ca6c37-9f86-c33f-d031-59e4a4683e39.png)
「スルッとKANSAIご利用エリアマップ」の

元記事を表示

【Django】_metaでモデルのメタデータにアクセスする方法

# 概要
Djangoで見る`_meta`とはどんなツールなのか?
実際にサンプルコード触りながら調べてみたので紹介します。

# 前提

以下のようなDBテーブルを作成したとします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2710373/7025aa5c-6486-dbf7-c008-3c5610e11e12.png)

`models.py`は以下の通り。

“`py
class Country(models.Model):
name = models.CharField(max_length=100, null=True, blank=True)
capital = models.CharField(max_length=100, null=True, blank=True)
population = models.IntegerField(null=True, blank=True)
continent = models.CharFie

元記事を表示

Apache supersetを使ってみた

# はじめに
「いい感じの画面のBIツールがある」と知人から紹介していただいたApache Supersetを試したいと思います。やりたいことは、下記の3つです。
– 楽にグラフを作りたい
– かっこいいグラフとかを表示したい
– 特定のレコード内に値が入っていないものがあったらそれをリスト選択で埋める(←できるか?)

3つ目はできたらいいな、レベルです。

# インストール

自前の環境を使いたいのでそのままのものを使用します。

https://superset.apache.org/docs/installation/installing-superset-from-pypi/

## 環境
検証する環境を記述します。

| key | value |
|:-:|:-|
| OS | macOS Sonoma14.4.1 |
| cpu | M3 |
| python | 3.11.8 |
| PostgreSQL | 14.11 |

## 必要なパッケージのインストール
mac OS内に必要なパッケージをインストールします。
はじめにxcodeをインストールします。

元記事を表示

XONSHをWindowsにインストールしてWindows Terminalに設定してみる

Oh My Poshの対応しているシェルを見ていると、XONSHというシェルが目につきました。

[Oh My Posh Change your prompt](https://ohmyposh.dev/docs/installation/prompt)

調べてみると、XONSHはshellコマンドとPythonコマンドが利用できるシェルのようで、Linux、OSX、Windowsと主要なシステムで動くようです。

普段は主にPowerShellを利用しており、PowerShellには親しみを感じている気がするので、ちょっとXONSHを利用する事によってPythonに親しみが持てるようになるのでは?

と思い浮かんだので、ちょっとWindowsにXONSHをインストールしてみます。

## サイト

– [XONSH](https://xon.sh/)
– [xonsh documentation](https://xon.sh/contents.html)
– [Windows](https://xon.sh/platform-issues.html#windows)
– [ank

元記事を表示

OTHERカテゴリの最新記事