- 1. 選択問題の正解並び替えコード
- 2. paizaS問題の解答をManimで可視化する
- 3. 二次元〜多次元正規分布データの生成
- 4. 楕円形に分布する乱数を生成する
- 5. LibreOfficeCalc: Python マクロ: コラムのコピー
- 6. Twitter(現:X)のbotを作成する。(2024年8月 Twitter API v2対応版)
- 7. paiza×Qiitaコラボ 第1弾 D~Sランク問題に挑戦
- 8. 【私用】ubuntu24.04でpipしてもライブラリインストールできずPEP668になる件
- 9. LibreOfficeCalc: Python マクロ: セルのコピー
- 10. Pythonでファイルを一行ずつ効率的に読み込む方法
- 11. 「スッキリわかるPython入門第2版」を読んで
- 12. 知財のあれこれをVBAで何とかする
- 13. Confusion matrix(混同行列)に要素数とパーセンテージを表示するには?
- 14. OCI CLIインストール時の「No such file or directory」エラーの解決方法
- 15. pybind11を使ってPythonからC++を呼ぶ
- 16. streamlitでクリップボードにコピーボタンを実装
- 17. 【paiza】勤怠管理の問題をやってみた
- 18. Azure Blob StorageへPythonを使ってファイルアップロードする
- 19. Depth Completion(深度補完) 関連で使われていることのあるライブラリ
- 20. Flaskアプリケーションでコーディングテストをしてみた
選択問題の正解並び替えコード
選択問題の中身は同じにしたまま、正解番号だけかえたいときあるけど、手作業で並び替えるのも面倒と言えばめんどうです。
ちなみに正解がすべて1の場合です
### 「爆笑」と「大笑い」の言葉の、意味の違いは何でしょう?
1 笑う人の数 2 笑う声の大きさ
### お医者さんや看護師さんは、基本的に白い白衣を着ますが、手術の時には、青緑色の制服を着る人が多いです。一体なぜ?
1 目を疲れにくくするため 2 菌が繁殖しないための、特殊な加工をしているから
### 「不意打ちなことに驚く」様子を「寝耳に水」って言いますね。この「水」って何をさしている?
1 洪水 2 井戸の水
# コード例
Pythonを使用して選択問題の正解を並び替えるためのコードを以下に示します。
“`
# 問題と選択肢のリスト
questions = [
{“question”: “「爆笑」と「大笑い」の言葉の、意味の違いは何でしょう?”, “choices”: [“1 笑う人の数”, “2 笑う声の大きさ”], “correct”: 1},
{“question”: “お医者さんや看護
paizaS問題の解答をManimで可視化する
# はじめに
paizaとQiitaのコラボキャンペーンで出題された問題の中で視覚化しやすそうな問題を選び、視覚化していきます。視覚化には、3Blue1Brownというチャンネル内の動画に使われているManimというライブラリを使って作成しました。https://www.youtube.com/c/3blue1brown
https://www.manim.community/
## 前提知識
下記を知っているという前提で話していきます
– BFS(幅優先探索)おすすめ記事
https://qiita.com/drken/items/996d80bcae64649a6580
# 島探し
## 問題
https://paiza.jp/works/mondai/s_rank_skillcheck_sample/search-island## ひとくち解説
グラフ全体をたどっていき黒いマスへ止まるごとにBFS(DFSでもOK)をします。探索しきったときにcntをインクリメントをし、最後にcntを表示します。## 正解したコード
“` island.py
from c
二次元〜多次元正規分布データの生成
昔,以下のような関数を作りました。
2次元正規分布から,k次元正規分布までに対応しています。
指定した相関係数の通りのデータを作ります。—
## 指定された相関係数行列を持つ変数の生成
特定の相関係数行列を持つ多変量データを生成する。
“`python
import numpy as np
from scipy.linalg import eigvals, inv, svd, cholesky
from scipy.stats import zscoredef gendat(n, r):
#
#
def trimat(x):
l = len(x)
n = int((np.sqrt(1 + 8 * l) + 1) / 2)
if l != n * (n – 1) / 2:
raise Exception(“length of vector is not just required”)
r = np.tri(n, n, -1)
r[r ==
楕円形に分布する乱数を生成する
他人に PCA(主成分分析)などを説明する際に、いつも「楕円形に分布する乱数を作りたいなぁ」と思う。
あるあるですね。でもその度に毎回
* 各軸がガウス分布に従う2次元の変数だから、numpy.random の multivariate_normal か
* cov ってなんだっけ・・・、あ、共分散行列か
* 作りたい形の共分散行列ってどうやって作るんだよ・・・
* (適当な値の cov をつっこむ)”covariance is not symmetric positive-semidefinite.” いやまぁそうだろうけどねとなって、途方に暮れる。
なので、ちゃんと作って見た。
# 関数
“`python
from numpy.random import Generator, default_rng
from numpy.typing import NDArraydef generate_random_ellipse(
corrcoef: float,
degree: float,
size: int,
seed: int =
LibreOfficeCalc: Python マクロ: コラムのコピー
KからQ のコラムを、QからU にコピーします。
値とコラムの幅をコピーします。## プログラム
“`py:.config/libreoffice/4/user/Scripts/python/column_copy.py
import unodef column_copy():
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.getCurrentController().getActiveSheet()
#
range_src = sheet.getCellRangeByName(“K1:O50”)
range_target = sheet.getCellRangeByName(“Q1:U50”)range_target.setDataArray(range_src.getDataArray())
for it in range(5):
range_target.getColumns()[it].Width = range_src.getColumns()[it].Width
#
return
“`
Twitter(現:X)のbotを作成する。(2024年8月 Twitter API v2対応版)
## 0. 始めに
Twitterのbotを作成しようとした際に、古いAPIの情報の記事などが混ざっており、いろいろ詰まってしまったため備忘録として記載します。(投稿内容は2024/08時点です。)
なお本記事では、Google ColabからAPI経由でツイートをポストする部分までです。投稿のスケジューリングなどは、また別記事で書きます。。## 1. Twitter APIの申請
まずはTwitterAPIの申請を行います。以下の方の記事でとても分かりやすくまとめていただいているので、その通りに進めていけば大丈夫です。
何となくですが、
>これらの投稿は、テキスト、画像、そして関連するブログのURLを含むもので、Xの規約に従うことを心がけており、私のフォロワーにとって価値ある情報を提供することを目指しています。このフレーズを申請理由に入れておけばスムーズに許可されるんじゃないかと思っています。**規約遵守は大事!**
## 2. Twitter APIの
paiza×Qiitaコラボ 第1弾 D~Sランク問題に挑戦
# paiza×Qiitaコラボ 第1弾 D~Sランク問題に挑戦
– 経緯
自分もQiitaで記事を書いてみたいなと思っていたところ, 誰でも参加できるこのキャンペーンを見つけたので主にPythonで挑戦してみました!この記事では問題を解く際にどのようなことを考えたかを伝えたいと思います。
Sランクが解けなかったのは悔しいですが, 自分もこういうキャンペーンに参加できるんだという実感が得られたので, 参加して良かったなと思います。
paiza×Qiitaコラボキャンペーン第2弾の方は8/29(木)までやっているようなので, ちょっと気になるなと思ったら皆さんも気軽に参加してみてください。
https://paiza.jp/pages/campaign/paiza-qiita
## [D007:N倍の文字列(正答)](https://paiza.jp/works/mondai/d_rank_skillcheck_archive/square)
![N倍の文字列のイメージ図.jpg](https://qiita-image-store.s3.ap-n
【私用】ubuntu24.04でpipしてもライブラリインストールできずPEP668になる件
# 概要
ubuntu 24.04で,ターミナルからpipを利用してライブラリをインストールしようとするとエラーになる.* ubuntu 24.04
* Python: 3.12.3~~~:エラー
> pip3 install –user numpy
—
error: externally-managed-environment
︙
hint: See PEP 668 for the detailed specification.
~~~
エラー発生:scream::scream::scream:解決方法:仮想環境を作成が推奨らしい
:::note
手順 : **ホームディレクトリで実行**
1. sudo apt install python3-venv
1. python3 -m venv .python3_venv
1. source .python3_venv/bin/activate
:::# 1. pipでライブラリをインストールできない
2024年これはubuntu LTSが公開される年.ということで,ubuntu 24.04をインストール.
LibreOfficeCalc: Python マクロ: セルのコピー
## プログラム
“`py:.config/libreoffice/4/user/Scripts/python/cell_copy.py
import unodef cell_copy():
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets[0]
#
for it in range(8,17):
cell_src = sheet[‘B%d’ % it]
cell_target = sheet[‘K%d’ % it]
vv = cell_src.getString()
cell_target.setString(vv)
#
cell_src = sheet[‘C%d’ % it]
cell_target = sheet[‘L%d’ % it]
vv = cell_src.getString()
cell_target.setString(vv)
#
return
“`## 参考ページ
[LibreOffice: Python のマクロを使う](https://qiita
Pythonでファイルを一行ずつ効率的に読み込む方法
## はじめに
こんにちは!今回は、Pythonでファイルを一行ずつ効率的に読み込む方法について解説します。大きなファイルを扱う際に特に役立つテクニックをご紹介します。
まず、テスト用のファイルを作成しましょう。以下のコードを使用して、サンプルファイルを生成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/44a96e2c-dc0f-053b-5952-447506fb224d.png)
“`python
def create_sample_file(filename, lines):
with open(filename, ‘w’) as file:
for i in range(lines):
file.write(f”This is line {i+1} of the sample file.\n”)# サンプルファイルの作成
create_sample_file(‘sample.txt’, 100
「スッキリわかるPython入門第2版」を読んで
## はじめに
今までpaizaでpythonについて学習していましたが、「スッキリわかるPython入門第2版」を購入し改めて学習し直しました。その中で学んだことを記憶するためにまとめます。https://amzn.asia/d/iJ2h5L8
### 1. ヒアドキュメント
“`
”’
文字列1
文字列2
:
”’
“`
– 三連続引用符の間に記述した、文字が入力したとおりの文字として解釈される
– 三連続の引用符はダブルクォーテーションでもよい
– 最後の引用符の後に`.strip()`を追加すると前後の改行を除去できる### 2. アンパック代入
“`
name, age = ‘タナカ’, 24
“`
– 変数と値の要素をそれぞれ,(カンマ)で書き並べ=記号を間に入れることで、変数にまとめえて代入することができる### 3. 文字列の中に値を埋め込む
“`
‘{}を含む文字列’.format(埋め込む値1, 埋め込む値2, ・・・)例)
name = ‘tanaka’
age = 24
print(”私の名前は{}です。
知財のあれこれをVBAで何とかする
1.ファミリを何とかする(その5)
特許リスト上で何らか作業をする場合に、ファミリだけをまとめて表示させたい、そんな時の処理方法を紹介したいと思います。2.今回やろうとしていること
今回やろうとしていることは「ファミリ以外の特許を含む特許リストから、ファミリだけを表示させる」ことです。
具体的には以下のような特許リストと、希望するファミリを含む情報を入力すると、特許リストから希望するファミリの行を抽出して表示するような処理を行います。
特許リストはExcel形式を想定しています。特許リストの例:
![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3831931/f8583c39-5408-ce47-6656-6380b6b9257a.jpeg)
(特許リストをtxt形式で貼りつけたものがこちら。メモ帳にコピペしてエンコード「ANSI」で保存(文字化け対策)して拡張子(txt)をcsvにするとExcelで開けます)
“`sample.txt
“特許番号”,”評価”,”ファミリ”
JP777
Confusion matrix(混同行列)に要素数とパーセンテージを表示するには?
# 1. Confusion matrix(混同行列)とは?
Confusion matrix(混同行列)は、機械学習においては、構築したモデルの性能を評価する手段のひとつである。Confusion matrixは、4つの要素から構成される。
|要素|意味|
|:-:|:-:|
|True Positive|実際にポジティブで、モデルもポジティブと予測したもの|
|True Negative|実際にネガティブで、モデルもネガティブと予測したもの|
|False Positive|実際にはネガティブだが、モデルがポジティブと予測したもの|
|False Negative|実際にはポジティブだが、モデルがネガティブと予測したもの|# 2. PythonでConfusion matrixを作成するには?
## 2.1. サンプルデータの読み込み
今回はScikit-learnにて入手可能なデータセットから「Breast Cancer Wisconsin」を使用する。~~~Python
# 必要なライブラリのインポート
from sklearn.datasets import
OCI CLIインストール時の「No such file or directory」エラーの解決方法
# OCI CLIインストール時の「No such file or directory」エラーの解決方法(Windows 11 Home対応)
## はじめに
Oracle Cloud Infrastructure (OCI) CLIをWindows環境にインストールする(pip install oci-cli実行の)際、以下のようなエラーに遭遇することがあります。
“`
ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: ‘C:\\Users\\…\\Python39\\Lib\\site-packages\\oci_cli\\help_text_producer\\data_files\\man\\database-management_managed-database_enable-external-container-database-management-feature-external-database-diagnostics-and-
pybind11を使ってPythonからC++を呼ぶ
# はじめに
性能とコーディングスピードのいいとこ取りをしたいと考えたとき、PythonからC++を呼ぶことを一度は検討すると思います。CPUをたくさん使う重たい処理(HotSpot)だけC++で実装し、I/Fは実装が楽なPythonで実装することで、ナイスなソフトウェアが作れそうです。
一方で、複数言語からなるソフトウェアは保守面を考えるとあまりやりたくないため、なかなか手が出づらい領域ではあります。また、バインディングにはオーバヘッドが必ず存在するため、要求性能によってはそれが足かせになってしまうかもしれません。実際どのぐらいオーバヘッドがあるのかも調査しなければなりません。
とはいえどうすれば実装できるのか、課題としてどんなものがあるのかは知識として持っておきたかったので、試行錯誤した記録を残したいと思います。
## 環境
– Windows10
– gcc 13.1.0(MinGW)
– Make 3.81
– cmake 3.27.0
– Python 3.11.9# 作業の前に
PythonからC++を呼ぶ方法は複数あるらしい。以下に著名なものをとざっくりと
streamlitでクリップボードにコピーボタンを実装
# やりたいこと
streamlit上で、AI生成したテキストをクリップボードにコピーできるボタンを設置したい!
前回の記事でcomponents.htmlを使えばJavascriptを動かすことができることは学習済み!https://qiita.com/aliceroot0678/items/6487eab357bef2c37eb7
クリップボードにコピーする処理だけ調べました。
# 実装:シンプルなテキストコピー
まずは、普通のテキストをコピーするボタンから作ってみるよ。
“`python:simple_copy.py
import streamlit as st
import streamlit.components.v1 as stc# コピーするテキスト
copy_text = “これ、クリップボードにコピーされるよ!”# HTMLテンプレート
html_content = f”””
Azure Blob StorageへPythonを使ってファイルアップロードする
# 概要
最近Azureを使った開発が増えてきているので勉強がてら公式のドキュメントを参考にしつつ、Azure Blob Storageへファイルアップロードを実装してみた。※会社PCではない。Azureも個人環境である。
#### 前提
前提条件は公式を参照します。以下内容を守っていればいいかと。
Azure アカウントの作成。Blob Storageの作成。コンテナの作成等は完了しています。
ちなみにAzure CLIダウンロードも必須です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645607/161bce19-fa5f-1054-72e3-90147b9ff02f.png)[公式リンク](URL “https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-quickstart-blobs-python?tabs=managed-identity%2Croles-azure-portal%2Csign
Depth Completion(深度補完) 関連で使われていることのあるライブラリ
## はじめに
`pip install -r requirements.txt` などと一気にライブラリのインストールをしていると、どのライブラリが何のために使われているのかを無自覚になってしまいがち。
そこで、最近使っているrepository の中の依存ライブラリを調べてみた。## 想定する読者
– 3Dカメラで取得したdepth(深度)を改善することに関心のある人
(日本の中に何人いるんだ? ほぼ俺得)## EXR 画像ファイルの読み書き用のライブラリ
画像のbit幅が8bitには収まらないような画像を扱うためのファイル形式のライブラリ
[OpenEXRとは](https://ja.wikipedia.org/wiki/OpenEXR)
画像ファイルの拡張子は.xer となります。“`
apt install -y openexr
pip install OpenEXR
pip install pyexr
“`## open3d
3Dの点群データを扱うためのライブラリ“`
pip install open3d
“`## [Transforms3
Flaskアプリケーションでコーディングテストをしてみた
こんばんは。
Flaskアプリケーションでコーディングテストをしてみました。
# 問題
簡単なFlaskアプリケーションを作成し、本のリストを管理するRESTful APIを提供してください。それぞれの本は、id、title、authorを持ちます。APIは以下の操作をサポートする必要があります:
– GET /books: 全ての本のリストを取得します。
– POST /books: 新しい本を追加します。
– GET /books/: 特定のIDを持つ本を取得します。
– PUT /books/: 特定のIDを持つ本を更新します。
– DELETE /books/: 特定のIDを持つ本を削除します。 # 要件:
– メモリ内リストを使用して本を保存します。
– 入力データを検証し、titleとauthorが空でない文字列であることを確認します。
– 適切なHTTPステータスコードを返します(例:200、201、404、400)。# コーディング
“`python
from flask import Flask, request, json