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

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

Snowflakeで初めてのFunction作成

Snowflakeで関数作れるらしいです。

UDF(user-defined function:ユーザー定義関数)というやつですね。
OracleのFunctionとだいたい一緒かな?となんとなく思っているものの、
触ったことがないので一度作ってみようとやってみました。

お試しでどんな関数を作りましょうか?
西暦から和暦変換をする関数でも作りましょう。
言語はPythonです。
私の頭では考えられないのでClaude 3.5 Sonnetに書いてもらいました。

私:`Pythonで西暦から和暦に変換するコードを書いてください`
Claude先生:`以下に、西暦から和暦に変換するPythonコードを示します。このコードは、明治、大正、昭和、平成、令和の5つの元号に対応しています。`
“`
def seireki_to_wareki(year):
if year < 1868: return f"{year}年は明治以前です" elif 1868 <= year < 1912: era = "明治" era_year

元記事を表示

倒産企業情報の取得

# 概要

倒産企業の情報といえば,[東京商工リサーチ](https://www.tsr-net.co.jp/)や[帝国データバンク](https://www.tdb.co.jp/index.html)が有名です.東京商工リサーチのWebサイトで提供されている企業倒産の内容や背景・経緯に関する情報をスクレイピングにより取得して,下図のようなデータフレームにおさめてみたいと思います.

https://www.tsr-net.co.jp/

https://www.tdb.co.jp/index.html

財務データを含む倒産企業や非倒産企業の情報を活用して,倒産確率の推定や倒産・非倒産の2値分類などが行われているようです.

:::note
必要なライブラリ
pip install selenium
pip ins

元記事を表示

【地球の中心でUnixTimestampを叫ぶ!】日付時刻とタイムゾーンの理解を深める

# 【地球の中心でUnixTimestampを叫ぶ!】日付時刻とタイムゾーンの理解を深める
## 序章

### クイズ

いきなりですが、クイズです。以下のエンジニアとのやり取りを見て「誤っている」「あいまいだ」という箇所を3つ探してください。

– 若手設計者Aと若手開発者Bのやり取り
– 設計者A:Xシステムの画面仕様の件なんだけど、ここのデータベースのこのテーブルの項目に入っている日時型の値を画面にJSTで表示してほしいんだ!
– 開発者B:オッケー、画面実装しておくよ。ていうか、このデータベースって、日時型をUTCで保持しているからちょっとめんどくさいんだよなぁ。
– 設計者A:へー、そういうもんなんだね。
– 開発者B:まあJSTで良いんだったら時差が+9時間だから、取得した値に9時間足して表示するようにしておくね!
– 設計者A:ありがとう!

解答は本記事の末尾に・・・。

### はじめに

こんにちは、京セラコミュニケーションシステム 立脇(@kccs_hiroshi-tatsuwaki)です。

さて、いきなりクイズからはじまった本記事ですが、

元記事を表示

PythonでFizzBuzz問題を解いてみよう

# PythonでFizzBuzz問題を解いてみよう

こんにちは!今回はプログラミングの基本中の基本である「FizzBuzz問題」をPythonで解いてみたいと思います。
FizzBuzz問題は、簡単ながらも様々な解法があるため、初心者から上級者まで楽しめる問題です。

## FizzBuzz問題とは?

1から100までの数字を順に表示するプログラムを作成します。ただし、次の条件を満たす場合には数字の代わりに特定の単語を表示します:

– 数字が3で割り切れる場合は「Fizz」
– 数字が5で割り切れる場合は「Buzz」
– 数字が3でも5でも割り切れる場合は「FizzBuzz」

では、さっそく基本的な解答例から見ていきましょう。

## 基本的な解答例

まずはシンプルな解答です。

“`python
for i in range(1, 101):
if i % 3 == 0 and i % 5 == 0:
print(“FizzBuzz”)
elif i % 3 == 0:
print(“Fizz”)
elif i %

元記事を表示

チーム分け

# 1.はじめに
数理最適化の練習としてチーム分けを行ってみたので、今回はそれについて共有します。
初数理最適化なので嘘をついていたら教えてください。

# 2.背景と目的の設定
・毎週10人の社員が集まって仕事をする。
・そのとき、昼休みにランチへ行きたい。
・しかし、10人が座れる席は基本的に存在しない。
・したがって、3グループ程度に分かれる必要がある。

・そのとき、なるべく色々な人と話せるようにしたい。
・そのために、AさんとBさん、BさんとCさんといった社員の各組み合わせについて、同じグループになる回数をなるべく均等にしたい。

以下のように分かれる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776260/430b563d-bc00-44fb-3d6e-42994e2ef1df.png)

# 3.方法
まず、「均等に分かれる」という条件を、「同じチームになった回数の最大値が最小」かつ「最小値が最大」と言い換えます。

**ハード制約(絶対に守る条件)**
・グループ

元記事を表示

巨大なCSVファイルを開く色々な方法

## はじめに
Pythonで巨大なCSVファイルを作成する方法を前回紹介しました。

https://qiita.com/EveSquare/items/67552dbccb3a7c326703

今回は、巨大なCSVファイルを読み込む方法を紹介します。
FinderのクイックルックやVSCodeのプレビュー機能では、巨大なCSVファイルを開くことができません。
その場合は、以下の方法を試してください。

### 先頭から数行だけ読み込む

#### 1. `head`コマンドを使用する

`head`コマンドは、ファイルの先頭部分を表示するためのコマンドです。数行だけ見たい場合にはこれが便利です。

“`bash
head -n 10 .csv
“`

このコマンドは、先頭10行を表示します。

![head-n10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403148/9c7a8abf-2169-1d9b-f2ea-74ada669fcae.png)

#### 2.

元記事を表示

Dockerを使ってwsl上でchainerの環境構築

# 背景

この記事はchainerと呼ばれるPython用のDeepLearningフレームワークを使った深層学習プログラムを、WSLを使ってローカル環境で動かすためのものです。
私は非常にこの環境構築で苦戦しました。特に私と同じ研究室の方はchainerを使う機会があるかもしれないので、その手助けとなれば幸いです。

chainerを機能させるために必須のモジュールやドライバーが複数存在しますが、インストールする順番やバージョンを間違えると機能しないため慎重に行う必要があります。

今回はWSLを用いており、Dockerを通してローカル環境でchainerを使う深層学習のための環境を整えることを目標とします。

# 環境

OS:Windows11 home
[WSL:Ubuntu20.04LTS](https://apps.microsoft.com/detail/ubuntu-20-04-6-lts/9MTTCL66CPXJ?hl=ja-jp&gl=JP)
[DockerDesktop for Windows](https://www.docker.com/products/d

元記事を表示

LambdaでAppStoreの最新レビューを取得してSlackチャンネルに通知する

# はじめに

こんにちは、Gakken LEAP のエンジニアの okamotoです。

AppStoreのレビューを自動で定期的に確認し、新規で投稿されたものがあれば通知を行う仕組みを作成しました。

本記事ではAWS Lambdaでアプリケーションを実行し、Slackのチャンネルに通知するための手順を紹介します。

# 準備するもの

## アプリのレビューを取得するためのURL

`
https://itunes.apple.com/jp/rss/customerreviews/id=[Apple ID]/sortBy=mostRecent/xml
`

※[Apple ID]はレビューを取得したいアプリのAppStoreのURLに「idxxxxxxxx」で記載されています。

## 通知先のSlackチャンネルのURL

### 手順

* 以下のURLにアクセス

1. 「Create an APP」をクリック
![図1.png](https://qiita-image-store.s3.ap-nort

元記事を表示

WSLへのServerlessFrameworkの導入

# 自己紹介

乙井です……。(ヒロシです風)
Gakken LEAPという EdTech の会社で丁稚エンジニアをやっております。
本稿では WSL への ServerlessFramework の導入についてご説明します。
なお前回は[remi で入る PHP アップグレード](https://qiita.com/GleapPost/private/b25bb1f3309e548d976e)という記事を書いたりしています。

# 目次

– [自己紹介](#自己紹介)
– [目次](#目次)
– [前書き](#前書き)
– [前提条件](#前提条件)
– [コマンド](#コマンド)
– [下準備1](#下準備1)
– [Serverless Framework 導入](#serverless-framework-導入)
– [ローカル実行](#ローカル実行)
– [下準備2](#下準備2)
– [デプロイ・リモート実行](#デプロイリモート実行)
– [余談](#余談)
– [★エンジニア募集!★](#エンジニア募集)

元記事を表示

googleMapのurlから住所を取得するpythonコード

nominatimというものが使えるらしいです。
以下ソースコードです。

“`python
import requests
import json

def urara(url):
url_split = url.split(‘?q=’)[1].split(‘,’)
latitude = url_split[0]
longitude =url_split[1]
url = f’https://nominatim.openstreetmap.org/reverse?format=json&lat={latitude}&lon={longitude}’

headers = {
‘User-Agent’: ‘urara’ # ここにあなたのアプリケーション名を入れてください
}

response = requests.get(url, headers=headers)
print(response)
data = response.json()

if ‘error’ in data:
print(‘Address n

元記事を表示

【Python】pygameでパックマン風のゲームを作ってみた

## はじめに

pygameでパックマン風のゲームを作りました。

## 説明

黄の四角 : 自機(パックマン)
赤の四角 : 敵
青の四角 : メダル的なもの

十字キーで移動します。

一度的に当たったら「Game Over」と表示して3秒後にウィンドウを閉じます。
青の四角を全部取ったら「Game Clear」と表示して3秒後にウィンドウを閉じます。

![スクリーンショット 2024-07-01 18.37.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3327773/39bb00ae-7d35-1dbd-9b95-d11ab9a20420.png)

## ソースコード

“`py main.py
import pygame
import random

# Pygameの初期化
pygame.init()

# ウィンドウの設定
width, height = 640, 480
win = pygame.display.set_mode((width, height))
pyg

元記事を表示

Pythonでベクトルの計算を行う方法

numpyを用いることにより、ベクトルを求め、なす角や内積を求めることができる。

### 理論
以下のようなベクトルがあった場合を考える。
“`math
\vec{x} =
\begin{pmatrix}
a \\
b \\
\end{pmatrix}
,
\vec{y}=
\begin{pmatrix}
c \\
d \\
\end{pmatrix}
“`

ベクトルのなす角は以下の式で求めることができる
“`math
\theta = \arccos \frac{xy}{|x||y|}
“`
ここの“`xy“`は2つのベクトルの内積である。
内積は以下の式で求めることができる。このθがなす角である。
“`math
xy = |x||y|\cos \theta = ac + bd
“`

### Numpyを使用し、なす角を求める
“`python
import numpy as np
def get_angle_vec(vec1:np.ndarray,vec2:np.ndarray):
”’
2つのベクトルからなす角を求めて返す
Ar

元記事を表示

Pythonで中身のある巨大なCSVファイルを作成する

## はじめに
Pythonで中身のある巨大なCSVファイルを作成する方法を紹介します。
ただし、この方法は作成するのに割と時間かかります。
もっといい方法があると思いますが、ご了承ください。

単純に中身のないモックデータを作成したいのであれば、こちらの記事で紹介した方法がおすすめです。

https://qiita.com/EveSquare/items/f80e3dd2f3f9e0c720c5

## 作り方
事前に`pip install pandas`を実行して`pandas`をインストールしておいてください。

“`python
import csv

import numpy as np

column_names = [“id”, “name”, “price”, “category”]
data_types = [np.int64, np.object_, np.int64, np.object_]
num_rows = 40000000

data = []
for _ in range(num_rows):
row = []
for col,

元記事を表示

Pythonで扱うS3のパスをs3pathlibでイケてる記述にする

# TL;DR

PythonでS3のファイルパスを扱う場合には `s3pathlib` が便利です。組み込みモジュールの `pathlib` では `s3://` から始まるS3のパスをパースすることができませんが `s3pathlib` なら `pathlib` と同じように扱うことができます。

“`python
from pathlib import Path
from s3pathlib import S3Path

local_dir = Path(“./my_dir”)
s3_dir = S3Path(“s3://my_bucket/my_dir”)

if local_dir.exists():
print(f”ローカルのディレクトリ {local_dir} は既に存在します。”)

if s3_dir.exists():
print(f”S3上のディレクトリ {s3_dir} は既に存在します。”)
“`

私は `s3pathlib` を知る前は `str` 型でS3上のパスを処理していたのですが、 `str` 型でパスを記述することは型の安全

元記事を表示

Pythonで背景透過

## はじめに
`rembg`というPythonライブラリを使って、画像の背景を透過する方法を紹介します。

## インストール
“`bash
pip install rembg
“`

## 使い方
“`python
from rembg import remove

input_path = “input.png”
output_path = “output.png”

with open(input_path, “rb”) as i:
with open(output_path, “wb”) as o:
input = i.read()
output = remove(input)
o.write(output)
“`

inputの画像はwebp等でも大丈夫です。
outputの画像は背景が透過された画像になりますので、png等で保存してください。

## 使ってみる
以下の画像を使ってみます。


| 元画像 | 透過後 |
| — | — |
| ![nekocya

元記事を表示

Python FizzBuzz問題

**FizzBuzz**問題とは、「1~100までの値で3で割り切れる場合Fizz、5で割り切れる場合はBuzz、両方で割り切れる場合FizzBuzz」と表示するものです。
多種多様な書き方があるので一部を抜粋

#### 1
“`python
for i in range(1, 101):
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)
“`

#### 2
“`python
for i in range(1, 101):
if i % 3 == 0:
print(“Fizz”, end=””)
if i % 5 == 0:
print(“Buzz”, end=””)
if i%3 and i%5:
print(i

元記事を表示

pygameでAWSサービス名タイピング作ってみた(pyinstallerでexe化)

# AWS サービス名タイピングゲーム – 解説記事

## はじめに

本記事では、AWSのサービス名をタイピングするゲームの作成手順について解説します。このゲームは、Pythonのゲームライブラリ `pygame` を用いて構築されており、`pyinstaller` を使用して実行ファイルを作成する方法も含まれています。

## 目次

1. [プロジェクトの概要](#プロジェクトの概要)
2. [必要な環境](#必要な環境)
3. [インストール方法](#インストール方法)
4. [仮想環境(venv)の設定方法](#仮想環境venvの設定方法)
5. [使用方法](#使用方法)
6. [pyinstaller での実行ファイル作成](#pyinstallerでの実行ファイル作成)
7. [ゲームの詳細](#ゲームの詳細)
8. [まとめ](#まとめ)

## プロジェクトの概要

このゲームは、AWSのサービス名を素早く正確にタイピングすることでスコアを競います。各ラウンドでランダムに表示されるサービス名をタイピングし、時間内にできるだけ多くのポイントを獲得してください。

#

元記事を表示

Python用 型一覧【自分用】

| 1 | 2 |
|:-:|:-:|
| 真偽 | bool |
| 数字(整数) | int |
| 数字(少数含む) | float |
| 文字列 | str |
| リスト | list |
| タプル | tuple |
| 辞書 | dict |

元記事を表示

PowerShell で cd したら Python 仮想環境 (venv/virtualenv) に入る設定

# はじめに

毎度のアクティベートが面倒なのと、最近のバージョンでは PDM のバグの影響で、`Invoke-Expression (pdm venv activate)` を実行してもアクティベートされずに、ps1 ファイルのパスだけ返してくるのがストレスだったので、いっそのこと cd でアクティベートできるようにしてしまおうというのが最初のモチベーション。

Linux 系の記事は見つけたが、意外と PowerShell での設定の仕方がなかったので調べた。
とりあえず出来たので、メモ。

# 設定方法

## PowerShell プロファイルの確認

以下で PowerShell プロファイルのパスを確認できる。

“`powershell:PowerShell
$PROFILE
“`

対象のファイルをテキストエディタで開く。
(以下はサンプルとして NeoVim で開く例)

“`powershell:Powershell
nvim $PROFILE
“`

## スクリプトを記述する

“`powershell:Microsoft.PowerShell_pro

元記事を表示

URLを入力したらあるタグ内の文字を抽出できるツール(スクレイピング)

最近HTMLの中身を読み込むツールを作ろうとしたのだが,ブラウザのデベロッパーツールの中に書いてある文をどうにかして取り出せないかと考えた時に強引に取り出すことに成功した.本記事ではQiitaの本文を取り出す方法についてPythonで実装してみたので紹介する.

# 実装内容
Pythonの標準入力としてwebページのURLを叩き,出力でQiitaの本文を出すようにする.

# Beautiful Soup ライブラリ
まずスクレイピングをするにあたってのBeautiful Soup ライブラリについて説明する.
Beautiful Soup は Python のライブラリで、HTML や XML ファイルからデータを抽出するためのツールである.ウェブスクレイピングやウェブページの解析に広く使用されている.
– `html.parser` Python 標準ライブラリ(速度は中程度)
– `lxml` 高速で柔軟性が高い(別途インストールが必要)
– `html5lib` 最も寛容だが遅い(別途インストールが必要)
これらのパーサーを使って解析する.

:::note info

元記事を表示

OTHERカテゴリの最新記事