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

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

LibreOfficeCalc: Python のマクロを作成、実行

## プログラム

フォルダーの作成

“`bash
cd .config/libreoffice/4/user
mkdir -p Scripts/python
“`

“`py:.config/libreoffice/4/user/Scripts/python/hello_world.py
import uno

def hello_world():
doc = XSCRIPTCONTEXT.getDocument()
cell = doc.Sheets[0][‘A1′]
cell.setString(’12’)
cell = doc.Sheets[0][‘B2′]
cell.setString(’34’)
cell = doc.Sheets[0][‘C3′]
cell.setString(’56’)
cell = doc.Sheets[0][‘C4′]
cell.setString(’78’)
cell = doc.Sheets[0][‘C5’]
cell.setString(‘910’)

元記事を表示

そこの君!機械学習やるって言って、結局やってないよね?

# はじめに
こんにちは、エイです!

あなたは、
**「機械学習やりたいけど、
 最初って何をすればいいんだろう?」**
と思ったことがありませんか?

私は最初に何をすればいいかで迷いました!

今回、
機械学習で設定する
最初の目標の1つとして

**「Kaggle LearnのXGBoost」**

を紹介したいと思います!

**Kaggle**とか**XGBoost**とか

最初にたくさん言われても
何が何やら分かりませんよね!

私も最初見たときは分かりませんでした…
なので、以下に簡単に説明したいと思います!

機械学習は、扱うデータの種類が
「数値」「画像」「音声」「テキスト」
とありますが、

この記事は「**数値**」のデータに関する内容になっています。

# Kaggleとは

Kaggleは
機械学習のモデルを作成して
その精度を競い合うプラットフォームです。
https://www.kaggle.com/

機械学習に関する職業に就いている人で
知らない人はいません!!

![image.png](https://qi

元記事を表示

ゲーム数学Pythonコード

ボックスミューラ法
“`
import numpy as np
import matplotlib.pyplot as plt

def box_muller(n):
# Generate uniform random variables U1 and U2
u1 = np.random.uniform(0, 1, n)
u2 = np.random.uniform(0, 1, n)

# Apply the Box-Muller transform
z0 = np.sqrt(-2 * np.log(u1)) * np.cos(2 * np.pi * u2)
z1 = np.sqrt(-2 * np.log(u1))

元記事を表示

Ubuntu 20.04 に TensorFlow 2.5.0 と jupyterlab をインストール

## はじめに
TensorFlow 2.5.0 をどうしてもインストールしないと行けない状況で、jupyterlabもインストールしたらエラーが出たので、記録しておきます。

## インストール
CUDA 11.2 CUDNN 8.1 で構築していて、venvの仮想環境にpipを使用して普通にインストールします。
“`
$ pip install tensorflow==2.5.0
“`
別にエラーも出ずに終わりました。続いて jupyterlab をインストールします。
“`
$ pip install jupyterlab

ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow 2.5.0 requires typing-extensions~=3.7.4, b

元記事を表示

LibreOffice: Python のマクロを使う

次のページを参考にしました。
[LibreOffice CalcでPythonマクロを使う(1) ](https://takacity.blog.fc2.com/blog-entry-214.html)

## 環境構築

Ubuntu 24.04 のデフォールトの LibreOffice の環境では、Python のマクロは使えません。

次を実行して下さい。

“`bash
sudo apt install libreoffice-script-provider-python
“`
## サンプルの実行

Calc を立ち上げて

ツール -> マクロ -> マクロの管理 -> Python(A)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/0428ab54-37d0-5038-d1db-34f34ef89304.png)

HelloWorldPython を実行させます。

![image.png](https://qiita-image-store.s3.

元記事を表示

半導体の統計学

https://www.renesas.com/jp/ja/document/grl/semiconductor-reliability-handbook

“`

import numpy as np
import matplotlib.pyplot as plt

def failure_rate_curve(time, infant_mortality_rate, random_failure_rate, wear_out_start, wear_out_slope):
“””
Generate a failure rate curve with infant mortality, random failure, and wear-out periods.

:param time: Time array
:param infant_mortality_rate: Initial failure rate for the infant mortality period
:param random_failure_rate: Co

元記事を表示

Visual Studio Code 覚えてほしいショートカット

# はじめに
こちらは初心者向けです。
一気に全部覚えようとするのではなく、3個ずつ意識していくことが覚えるコツです!

# 1. 覚えておきたいショートカット一覧
#### 必須(全員覚えるべき)
| 名称 | ショートカット | 説明 |
|:—|:—|:—|
| コメントの切り替え | “`Ctrl + /“` | コメントアウトの切り替えが可能 |
| デバッグの実行 | “`F5“` | プログラムの実行・デバッグ |
| ターミナルを表示(非表示) | “`Ctrl + @“` | ターミナルの表示・非表示を切り替えが可能 |
| 新しいターミナル | “`Ctrl + Shift + @“` | 新しいターミナルを開く |
| ドキュメントのフォーマット | “`Alt + Shift + F“` | コードのインデント(段落)をきれいに整えてくれます。
※ HTML/CSS 〇 Python ×(フォーマッタの追加が必要) |

#### 推奨(エンジニアになる人は覚えるべき)
| 名称 | ショートカット | 説明 |
|:–

元記事を表示

Pythonのsetを使って高速な検索を実現する

## はじめに
Pythonでデータの検索を行う際、リストを使用するのが一般的です。しかし、大量のデータを扱う場合、リストの検索は非効率になる可能性があります。そこで登場するのが`set`です。この記事では、Pythonの`set`を使って高速な検索を実現する方法を紹介します。

## setとは

`set`は、Pythonの組み込みデータ型の1つで、重複のない要素の集合を表します。`set`の大きな特徴は、要素の検索が非常に高速であることです。これは、`set`がハッシュテーブルを使用して実装されているためです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/3f53cb41-fec2-5996-a4b7-2fce8f3b012f.png)

## setを使った検索の基本

まずは、簡単な例を見てみましょう。

“`python
import timeit

# 大量のデータを含むリストを作成
data = list(range(1000000))

# set

元記事を表示

Ollamaで簡単なRAGをPythonで試す

本記事は@claviers2kさんの以下の記事のWindows&完全ローカル版となります。

https://qiita.com/claviers2k/items/6b2f97d9a8210d909033

Docker版Ollama、LLMには「Phi3-mini」、Embeddingには「mxbai-embed-large」を使用し、OpenAIなど外部接続が必要なAPIを一切使わずにRAGを行ってみます。

# 対象読者
* Windowsユーザー
* CPUのみ(GPUありでも可)
* ローカルでRAGを実行したい人
* Proxy配下

# 実行環境
* Windows10 メモリ32G(16GあればOK) GPUなし
* Ubuntu24.04 on WSL2
* VSCode + Rye (Python3.12.4)

# 目次
– [WSL+Ubuntu+Docker環境のセットアップ](https://qiita.com/straygizmo/items/7024e7345c3fb5ed923e#wslubuntudocker%E7%92%B0%E5%A2%83%E3

元記事を表示

Intel® NPU Acceleration Library を使って LocalLLM を Intel NPU で動かす

# はじめに

Core Ultra 7 155H 搭載のノパソを買いました。 Core Ultra には NPU (Neural network Processing Unit) がついていて、AIの処理がつよつよになっています。そこで、最近自分の周りで流行っている LocalLLM を NPU を使って動かしました。本記事はその記録です。

# やったこと

* NPU ドライバの更新
* rye で intel_npu_acceleration_library を追加して実行
* numpy はバージョン 2 未満を入れる
* ライブラリで動かない部分を手動で書き換えて直す
* `Qiita.com is` という文章の続きをサンプルプログラムを使って生成してもらって NPU が動いてるのを確認

# 実行環境

* OS: Windows11
* CPU: Core Ultra 7 155H
* メモリ: 32GB
* Intel® NPU Acceleration Library: v1.3.0

# Intel® NPU Acceleration Library

元記事を表示

numpyのビューにより元の配列の値が変更されるかされないか問題

# numpyではsubset(配列の部分的な切り出し)機能がありますが、subsetの値を変更するときに
その変更の仕方によって、元の配列の値が変更されるかされないか変わってくるというすさまじくややこしい問題があります。

他言語でも普遍的に、同様に値の変更において破壊的かどうかという問題はややこしく、例えば、以下の問題を完璧に説明できる人は少ないのではないでしょうか。以下に値の変更について

1.[イミュータブルオブジェクトにおいては値の変更されているように見えて実際は新しいオブジェクトに再代入しているだけで元の値は直接変更できない](https://qiita.com/rdupejd7c4/items/1109ec84810bb5860121)

2.[ミュータブルオブジェクトにおいては元の値を更新できる](https://qiita.com/rdupejd7c4/items/1109ec84810bb5860121)

3.[シャローコピー](https://developer.mozilla.org/ja/docs/Glossary/Shallow_copy):新しいオブジ

元記事を表示

LINEを使用してSwitchBotのスマートロックを操作する方法

LINEアプリでメッセージを送信すればSwitchBotの操作ができる方法を書いていきます。
LINE様と呼んだ方がいいのかもしれない・・・

# 注意事項
今回は仕組みを知るために、無料のngrokを使用しています。
ngrokのセッションを再起動すると、新しいURLが生成されるので実用的な運用には向きません。
ngrokの場合は有料プランに申し込むと、固定のURLが使用できます。
他にも方法がありますが、今回は無料のngrokを使用します。

# 実行環境
– OS:Ubuntu 22.04.4 LTS
– Python:3.10.12
# 使用したツール
– SwitchBot API
– LINE Messaging API
– ngrok
– Flask
# SwitchBot APIの設定
– APIトークンとクライアントシークレットを取得します。
– スマートロックのデバイスIDを取得します。
※手順はこちらを参照ください。
https://qiita.com/kawano-y/items/6f9f7aad18f71cedbf31
# LINE Developersの設

元記事を表示

FlutterとFlaskを使用したパートタイム求人アプリの作成

### はじめに

こんにちは!今回は、FlutterとFlaskを使用して、ユーザーが1時間または2時間のパートタイム求人に応募でき、管理者が新しい求人を投稿できるアプリを作成する方法をご紹介します。

APIはローカルホストのポート8000で動作すると仮定します。

### Flutterプロジェクトのセットアップ

まず、新しいFlutterプロジェクトを作成しましょう。

“`bash
flutter create part_time_job_app
cd part_time_job_app
“`

### APIとの通信

FlutterアプリからFlask APIと通信するために、`http`パッケージを使用します。`pubspec.yaml`に以下を追加してください:

“`yaml
dependencies:
http: ^0.13.3
“`

### 求人一覧の表示

FlaskAPIから求人一覧を取得し、表示する機能を実装します。

“`dart
import ‘package:flutter/material.dart’;
import ‘pac

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その103 複数の項で表される漸化式のトップダウンな再帰呼び出しによる計算

# 目次と前回の記事

https://qiita.com/ysgeso/items/2381dd4e3283cbed49a0

https://qiita.com/ysgeso/items/8432194829a4c6cc95f0

## これまでに作成したモジュール

以下のリンクから、これまでに作成したモジュールを見ることができます。

| リンク | 説明 |
|:–|:–|
| [marubatsu.py](https://github.com/ysgeso/marubatsu/blob/master/103/marubatsu.py) | Marubatsu、Marubatsu_GUI クラスの定義|
| [ai.py](https://github.com/ysgeso/marubatsu/blob/master/103/ai.py) | AI に関する関数 |
| [util.py](https://github.com/ysgeso/marubatsu/blob/master/103/util.py) | ユーティリティ関数の定義。現在は `gui_pl

元記事を表示

Powerful Text Embeddings with Python: Introducing the nlp4j-llm-embeddings-e5 Server

## Introduction

In the fast-evolving field of natural language processing (NLP), generating high-quality text embeddings has become a crucial task for many applications, from search engines to recommendation systems. The nlp4j-llm-embeddings-e5 Python program presents an innovative solution, offering an easy-to-deploy, multithreaded HTTP server that produces sentence embeddings using advanced language models.

## Seamless Installation and Setup

Getting started with nlp4j-llm-embeddings-e5 is a

元記事を表示

歴史上、最も非情な河童(カッパ)はどいつだ 妖怪伝承DB分析

# 1. はじめに
この夏、海や川での溺水といった水難事故について調べる業務に取り組んでいたのですが、その際にチームの中で度々話に出てきたのが「河童(カッパ)」に関する伝説です。

「子どもを川に引き込む」といったいたずらのイメージが強いですが、歴史上最も非情なカッパはどいつなのか――。日本全国に残るカッパの伝承をAIの力を使って分析してみました。

# 2. 分析するデータ
日本に残る妖怪の伝承については、「国際日本文化研究センター」が公開する[怪異・妖怪伝承データベース](https://www.nichibun.ac.jp/YoukaiDB/)というサイトで確認することができます。

日本民俗学の文献から集められた全国各地の伝承35257件が登録されていて、「カッパ」に関するデータも1093件が登録されています。

これらの伝承が記録された書物の要約文や伝承が残っていた地域を分析しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590631/e4543e98-511e-8

元記事を表示

Azure OpenAI Whisper API を Python から2通りの方法で叩く

## はじめに

どうしてこんなチュートリアルみたい記事を…!?
↓ 公式の curl コマンドが動かないから…!!

https://learn.microsoft.com/ja-jp/azure/ai-services/openai/whisper-quickstart?tabs=bash%2Cpython-new&pivots=rest-api#rest-api

## 事前準備

.env に以下のようなファイルを作ってください

“`
AZURE_OPENAI_ENDPOINT=”https://*****.openai.azure.com/”
AZURE_OPENAI_API_KEY=”*****”
“`

## requests を使う方法

“`py
import requests
import os
from dotenv import load_dotenv

load_dotenv()

deployment_id = os.getenv(“AZURE_DEPLOYMENT_ID”, “whisper”)

url = os.getenv(“AZUR

元記事を表示

書くだけじゃダメ、利用者のことまで考えた docstring の書き方の提案。

## はじめに
docstringの使い方を思いついたので備忘録

## 本文

下記のような縦横のpxのサイズがあります。
“`python
large = [512, 512]
medium = [256, 512]
small = [256, 256]
“`
これをプロジェクト共通のサイズとして、色々なファイルで使うことになりました。

なので、下記のような Sizeクラス として適宜importして使うことにしました。
“`python
# Size.py
class Size:
large = [512, 512]
medium = [256, 512]
small = [256, 256]
“`

そして、クラスの説明として、下記のようなdocstringを書きました。
“`python
# Size.py
class Size:
“””
共通して使うサイズ
* large
* medium
* small
“””
large = [512, 512]
me

元記事を表示

Python `os.path` vs `pathlib`: どちらを使うべきか

## はじめに
Pythonでファイルシステム操作を行う際、`os.path`モジュールと`pathlib`モジュールの2つの選択肢があります。この記事では、両者の違いと使い分けについて解説します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/099a3ab2-f632-836d-3d39-98f19b2f440f.png)
## 1. 概要

– `os.path`: Python 2から存在する古くからあるモジュール
– `pathlib`: Python 3.4で導入された比較的新しいモジュール

## 2. 主な違い

### 2.1 オブジェクト指向 vs 関数ベース

– `os.path`: 関数ベースのアプローチ
– `pathlib`: オブジェクト指向のアプローチ

### 2.2 パス操作の方法

“`python
# os.path
import os
path = os.path.join(‘folder’, ‘file.txt’)
dir

元記事を表示

AtCoder ABC【D問題 K-th Nearest】Pythonで解説してみた

## D問題 K-th Nearest
この記事では、AtCoderの問題を解説します。
「二分探索」を応用する問題でした。今の私にぴったりな問題なので、記事としてメモ化しておきます。Pythonでの解き方を知りたい方にもピッタリです。

## 問題
https://atcoder.jp/contests/abc364/tasks/abc364_d

公式による解説はこちら
https://atcoder.jp/contests/abc364/editorial/10549

## 解き方のポイント
* 「k番目に○○な△△を求める」という問題には、二分探索が有効。
* fj(x)という関数を考える。これは、a1からa2のうち、Bjとの距離がx以下であるようなものの数。
* fj(x) >= kjを満たす最小のxを求めればいい。
* xの範囲を絞り込むために二分探索が使える。

### 注意
二分探索を行う際、以下の条件が満たされることを保証する必要がある。
* ng は常に不適切な値(条件を満たさない値)を表す。
* ok は常に適切な値(条件を満たす値)を表す。

具体的には、探

元記事を表示

OTHERカテゴリの最新記事