- 1. Databricksで利用できるデータストアにおけるデータへの権限付与機能(認可、アクセス制御)に関する検証
- 2. 困ったことと解決したことメモ_20211122
- 3. google-cloud-bigquery の load_table_from_json で 400 Error
- 4. 【Python】画像ファイルの解像度取得方法メモ
- 5. オリジナルCコンパイラ neo-c2 version 1.5.0リリースです。BoehmGCをデフォルトとしました。
- 6. Google Speech Recognition 恐るべし
- 7. PyQtGraphで複数のy軸を描く(DockArea編)
- 8. Windows で「有効なフォントファイルではありません」と表示される場合の対処法
- 9. jupyter notebookみたいなのがvscodeでできる!簡単
- 10. google colab でログ出力無しで進捗を表示する
- 11. 翻訳モデルの翻訳時の語順の並び替えを可視化してみた
- 12. 【Dr.Sum】インメモリビューのデータを利用した相関係数出力
- 13. 機械学習入門 vol.4 表(Pandas)の基本操作
- 14. pyside6-uicで.uiファイルを.pyに変換して実行するとエラーになる件
- 15. 非侵襲的治療に有効な音楽の特徴を抽出する
- 16. Linuxにpyenvをインストールしてpythonの開発環境を作る最短手順
- 17. 【Python】データ分析 (個人的メモ)
- 18. 素人備忘録注意:Tkinterでマウススクロール可能なフレームを作成
- 19. 遅いPythonの処理は、Juliaにやらせよう
- 20. 【Python】数字当てゲーム(ヒットアンドブロー Hit and Blow)を作ってみる
Databricksで利用できるデータストアにおけるデータへの権限付与機能(認可、アクセス制御)に関する検証
## 概要
Databricksで利用できるデータストアにおけるデータへの権限付与機能(認可、アクセス制御)を確認するために実施した、データ オブジェクトの特権と動的ビュー関数(行レベルセキュリティ、列レベルセキュリティ)に関する検証内容を共有します。検証内容としては、下記の記事をベースにしております。
– [データストア(データ分析基盤)におけるデータへの権限付与(認可、アクセス制御)に関する指針の検討 – Qiita](https://qiita.com/manabian/items/ad7c5927817e7d76be0b)
詳細は下記のGithub pagesのページをご確認ください。
https://manabian-.github.io/databricks_tecks_for_qiita/#data_object_privileges_test/01_configure_data_object_privileges.html
コードを実行したい方は、下記のdbcファイルを取り込んでください。
“`URL
https://github.com/manabi
困ったことと解決したことメモ_20211122
#困ったこと
エポック時間をタイムスタンプ形式に変更したい
##解決方法
“`sample.py
In [23]: df.head()
Out[23]:
date price
0 1349720105 12.08
1 1349806505 12.35
2 1349892905 12.15
3 1349979305 12.19
4 1350065705 12.15
In [25]: df[‘date’] = pd.to_datetime(df[‘date’],unit=’s’)In [26]: df.head()
Out[26]:
date price
0 2012-10-08 18:15:05 12.08
1 2012-10-09 18:15:05 12.35
2 2012-10-10 18:15:05 12.15
3 2012-10-11 18:15:05 12.19
4 2012-10-12 18:15:05 12.15In [27]: df.dtypes
Out[27]:
dat
google-cloud-bigquery の load_table_from_json で 400 Error
小一時間悩んだ
# 環境
– google-cloud-bigquery 2.30.1 (Python Client for Google BigQuery)
– Python 3.9.0# 現象
下記のようなコードで、BigQuery に insert しようとしたところ
“`foo.py
import jsonfrom google.cloud import bigquery
from google.cloud.bigquery.job import LoadJob
from google.cloud.bigquery.table import Tableif __name__ == ‘__main__’:
a = ‘{“foo”:”123″,”bar”: “123”}’
row = json.loads(a)project_id = ‘foo_project’
dataset_id = ‘bar_dataset’
table_id = ‘test’client = bigquery.Client(p
【Python】画像ファイルの解像度取得方法メモ
Python で画像ファイル (*.png など) から解像度 (WxH) の情報を抽出する方法として
* OpenCV (https://opencv.org/)
* Pillow (https://pillow.readthedocs.io/en/stable/)
* imagesize (https://github.com/shibukawa/imagesize_py)の使い方,速度のメモ.
画像ファイルは[いらすとやの人工知能のキャラクター](https://www.irasutoya.com/2016/12/blog-post_290.html)を使用バージョン情報:Python 3.7.3, OpenCV 4.5.4.60, Pillow 8.4.0, imagesize 1.3.0
# OpenCV
## インストール
“`
pip install opencv-python
“`## 使い方
“`python
import cv2filename = ‘ai_character.png’
img = cv2.imread(filena
オリジナルCコンパイラ neo-c2 version 1.5.0リリースです。BoehmGCをデフォルトとしました。
タイトル通りです。オリジナルヒープシステムはいずれ消します。
neo-c2でPython処理系を作っているとオリジナルヒープシステムにバグが見つかって
デバッグで悶えて死にそうになってました。
一人でブツブツ言いながら、必死でデバッグしてたら、嫁には離婚だと言われるし。
あとの余生はオリジナルPython処理系をBoehmGCを使ったお気楽neo-c2で作って行きたいと思います。
僕はイチローや大谷になりたかったのかもしれませんが、所詮は凡人です。
Rustは作れません。白人様ほど頭が良くありません。
男は諦めが肝心ですね。女の一念岩をも通すと言いますが僕は女じゃありません。
東大はどんなガリ勉しても、受かりません。
とりあえずCコンパイラの方はオリジナルのヒープシステムを消して、ちょっとソースを整理します。
viクローンの方もBoehmGCを使ったものとなってます(ソースコードレベルでは互換性があるので、特に変更は加えてませんが)
Python処理系を作るのが楽しみですね。あとはJava Script処理系も気が向けば実装したいと思います。
Let’s enjoy Programin
Google Speech Recognition 恐るべし
ソースコード
“`Python
#!/usr/bin/env python3import speech_recognition as sr
r = sr.Recognizer()
with sr.AudioFile(“1-01.wav”) as source:
audio = r.record(source)# text = r.recognize_google(audio, language=’ja-JP’)
text = r.recognize_google(audio, language=’en-US’)print(text)
“`結果
“`
TOEFL test must word 5,000 1:32 modern physical anthropology a major shift in the approach to physical anthropology occurred with the discovery of genetic principles to Gregor J Mendel had formulated the f
PyQtGraphで複数のy軸を描く(DockArea編)
# これは何?
複数のY軸をDockエリアのグラフに描画するコードです。
完成図は、以下のとおりです。![image.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/191337/12b59b47-a6f1-7e1e-2483-b7bb67aefa13.jpeg)
PyQtGraphを使用しています。
# 環境
– Darwin monju.local 21.1.0 Darwin Kernel Version 21.1.0: Wed Oct 13 17:33:23 PDT 2021; root:xnu-8019.41.5~1/RELEASE_X86_64 x86_64
– Python 3.9.1
– MacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports)# コードはこちら
PySide6用とPyQt5用のコードを記載しています。
説明は特に不要かと思います。DockAreaのラベル?は、デフォルトで紫色なのですが、以下
Windows で「有効なフォントファイルではありません」と表示される場合の対処法
# イントロダクション
フォント画像の描かれた SVG から、FontForge で Python Script を使用して ttf のフォントファイルを作成しました。
その際以下のアラートが出て、フォントを利用できないことがありました。![invalid_font_alert.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33738/99ad82bb-f75e-2ef1-7315-e42c1ac25915.png)
# ENV
– Windows10
– FontForge# 原因
! (半角ビックリマーク)が指定されていない。
## 解説
「!」は UTF-8 で U0021 という文字コードを割り当てられています。これは制御文字を除くと一番先頭の文字コードになるため、恐らく Windows ではフォントファイルの有効性を確認するアルゴリズムとして「!」の有無を見ているのだと思います。
ちなみに「!」に空白の画像を指定しても「有効なフォントファイルではありません」と出てプレビュ
jupyter notebookみたいなのがvscodeでできる!簡単
普通通りVSCODEを開き、拡張子を「ipynb」で保存する。
**それだけ!!!**
気分転換にいろいろなエディタでやるのもおもしろい!!!![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/756524/07a71aec-31e3-618c-c6c3-e5754f2cad29.png)
google colab でログ出力無しで進捗を表示する
1.はじめに
**google colab** でライブラリのインストールなどを行うとき、場合によっては長々とログを出力することがあります。これはスマートでないですが、ログを出力させないと今度は進捗が全く分からない。では、どうすれば良いか。2.対策
**tqdm.notebook** と **io.capture_output()** を下記のように組み合わせます。処理ブロックがA〜Dの4つだとしたら、各ブロックの終わりに **pbar.update(*)** で進捗率を記載し、合計100になるようにしておけばOKです。
各ブロックが終わると **pbar.update(*)** で設定した分プログレスバーが増えますので、大体の進捗が1行で分ります。“`python
from IPython.utils import io
import os
import subprocess
import tqdm.notebookTQDM_BAR_FORMAT = ‘{l_bar}{bar}| {n_fmt}/{total_fmt} [elapsed: {elapsed}
翻訳モデルの翻訳時の語順の並び替えを可視化してみた
# できたもの
次のGoogle Colaboratoryのすべてのセルを実行すると、サーバーが起動します。「次のリンクをクリックする」に表示されているリンクを開くと、入力フォームのページに遷移します。https://colab.research.google.com/drive/1o0Tzk-EMyk-d2QQaC-29arNMjuFzzePp?usp=sharing
入力を英語の**”I saw a girl with a telescope in the garden”**という文にして、いろんな言語で翻訳を試してみます。
– 日本語
![スクリーンショット 2021-11-15 20.29.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638747/b2c5fb72-c67e-1003-0c4a-df5276216aef.png)– 中国語
![スクリーンショット 2021-11-22 20.12.23.png](https://qiita-image-store.s3.ap-
【Dr.Sum】インメモリビューのデータを利用した相関係数出力
# 目次
– はじめに
– 前提条件
– データの用意
– エミュレータを使用したデバッグ
– 実環境での実行
– おわりに# はじめに
データ分析において現状蓄積されているデータからざっくりと論理的にデータ同士の関連性を導きたい。
Dr.Sum Ver.5.6からPyhonスクリプトを実行する機能が追加されたようなので[公式マニュアル](https://cs.wingarc.com/manual/drsum/5.6/ja/UUID-eada69d6-5fd7-1a57-747f-33318c15cae8.html)を参考に列項目に対して総当り的に相関係数を出力するロジックを実装してみる。
少しややこしいがDr.SumのPython連携ではインストール時にクライアント(デバッグ)用、サーバー(実環境)用の[実行環境](https://cs.wingarc.com/manual/drsum/5.6/ja/UUID-77ac2bf3-8cdf-f86a-c15b-2ad23c9ac765.html)がインストール時に提供されており、
そちらを利用するため本記事では適時Python実行環
機械学習入門 vol.4 表(Pandas)の基本操作
本コンテンツは機械学習入門講座を各所でやっている内容の一部を、受講者の皆様の予習・復習のために公開しているものです。対象読者は、Pythonをやったことがほとんどない方やつまづいてしまっている方でも概ね実行できるようになるレベルで書いています。解説は講座でそれなりに詳しくしているため、コードにコメントする以上の説明はあまり記述していません。
各コードはJupyterシリーズやiPythonで記述しながら実行できるように記述しています。
# 機械学習入門シリーズ記事
1. [機械学習入門 vol.1 Pythonの基礎1 記述とデータ型](https://qiita.com/mychaelstyle/items/500f67b01fda79c215d0) -> 講座第3回に相当
1. [機械学習入門 vol.2 Pythonの基礎2 条件分岐と処理](https://qiita.com/mychaelstyle/items/891dcad83e94f8edd3aa) -> 講座第3回に相当
1. [機械学習入門 vol.3 Pythonの基礎3 関数・クラス・モジュール](http
pyside6-uicで.uiファイルを.pyに変換して実行するとエラーになる件
WINDOWS上で、Qtdesignerで作られたuiファイルをpythonのpyファイルに変換したとき
pyside6-uic form.ui > form.py
とやると、import時に
“ValueError: source code string cannot contain null bytes”
になり
form.pyのみを実行すると、
“SyntaxError: unknown parsing error”
になった。これの解決策はここに載ってた
https://stackoverflow.com/questions/53035340/pyside2-uic-null-bytes-in-output> pyside6-uic form.ui -o form.py
で実行すると解決。
非侵襲的治療に有効な音楽の特徴を抽出する
#背景
モーツァルトの曲は、**”Mozart Effect”**と知られる程に、非侵襲的治療の可能性について昔より研究されている。最近、薬物耐性てんかんの治療法として、モーツァルト「2台のピアノのためのソナタ ニ長調(K.448)」が有効であることを示唆する論文が掲載された[(論文1)](https://www.nature.com/articles/s41598-021-95922-7)。とても気になったので、この曲の特徴をAutoencoderで抽出し、当該研究に活かせないか探ってみた。
作業フローは以下の通りである。+ 1. 学習データの作成
+ 2. モデルの構築
+ 3. 特徴抽出##1. 学習データの作成
まずはK448を学習データにしていく。
###1‐1. 楽曲データの読み込み
“`python
import librosa
K448_original, sr = librosa.load(“Sonata-K448-1.wav”)#第1楽章のみ
“`
サンプリングレートはデフォルトの22,050Hzにて行う。###1‐2. データの整形
論文中では、K
Linuxにpyenvをインストールしてpythonの開発環境を作る最短手順
## pyenvとpyenv updateをインストール
“`
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ git clone git://github.com/yyuu/pyenv-update.git ~/.pyenv/plugins/pyenv-update
$ pyenv update
“`– 参考リンク
– [pyenv自身のバージョンを上げる](https://qiita.com/hatt0519/items/1c029659de4f169cd09a)## ~/.bashrcに下記を記述
“`
# pyenv script
export PYENV_ROOT=”$HOME/.pyenv”
export PATH=”$PYENV_ROOT/bin:$PATH”
eval “$(pyenv init –path)”eval “$(pyenv init -)”
“`– .bashrcの変更を反映
“`
$source ~/.bashrc
“`– 参考リン
【Python】データ分析 (個人的メモ)
データ分析の勉強を進めるにあたってのメモです.
随時加筆します. qiitaの記法の練習も兼ねてます. 簡略してかいてます.#初日
### データの結合
+ 縦結合(行方向に増やす)
+ データ件数は増える
+ つまり項目は増えない
+ `pd.concat([データ1, データ2], ignore_index=”True”)`+ 横方向(列方向に増やす)
+ データの項目を増やす
+ 項目が二重にならないようにする
+ `pd.merge(データ1, データ2[“列”,…, “列”], on=”列”, how=”left”)`
+ on=”共通するデータ列”
+ how=”left/right”, どの方向から結合するか, 基本左?###その他
+ `.describe()`で統計量表示
+ `.dtypes`でデータ確認
+ `.groupby(“列”).sum()[“列”]`で集計
+ `pd.pivot_table(データ, index=”列”, columns=”列”, values=”列”, aggfunc=
素人備忘録注意:Tkinterでマウススクロール可能なフレームを作成
## Tkinterの情報、多いようで少ないし、Class化に至っては魔境
Tkinter。PythonベースのGUIとしてあれこれ実装したいならば必須なのかなと感じます。
ほかはざっと見た感じ、単純な操作のみの簡易版か、ゲームを作る的なベースコンセプト含有のもの。
ベタなものでいいだろうということでTkinterをチョイスし、作りたいものがあったため、かれこれ二ヶ月くらい大格闘して一つGUIアプリを作りました。開始数週間時点でTkinterの知見が深まったことにより大部分が作り直しになったり、勉強しながらなので当然遅かったりするわけですが、ある程度区切りのつくものが作れたと思います。
よくある「電卓を作ってみましょう」的な、勉強のための車輪の再発明をしている余裕はないので、ハナから実践的なツールである必要があったのです。デンジャラスな挑戦でしたが、めげずに達成できました。2021年11月現在、Tkinterに関しては、動画やWebレクチャー自体はそれなりにあります。ところが、第一にベタ書きのものが多いです。
それこそ先述の、勉強のためのお気楽なツール作り程度でしたら構いません
遅いPythonの処理は、Juliaにやらせよう
# 投稿理由(動機)
– Python から Julia を呼び出す処理は、Julia のファイル名を指定して実行させるものがほとんどで、**Python から引数を渡して処理させる記事が見当たらなかった**ので投稿しました。
– また、**Pandas の DataFrame も引数でわたせるので、適用範囲はかなり広がる**と思います。
– **Python の欠点である実行速度の遅さを、Julia でカバーできる**と思い記事にしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234391/ac8e2da7-2f91-582f-0823-a998a0f51b58.png)
– 上のグラフは、私の非力PCで処理した結果です。**Julia圧勝**です。 Python:327秒 Julia:3.3秒# 必要なライブラリのインストール
– Python側:[**PyJulia**](https://pypi.org/project/julia/) のインストール
【Python】数字当てゲーム(ヒットアンドブロー Hit and Blow)を作ってみる
## はじめに
はるか昔,ボードゲームでやったことがある
何色かの色ピンを使ったボードゲームだったような…
場所があっていたら黒ピン,場所は違うけど色があっていたら白ピンを立てる
確か,そんなような…家族がピンの代わりに数字でやる,現代版のやり方を教えてくれて,
少しはまっている調べると,ヒットアンドブロー(Hit and Blow)というらしい
はるか昔の色ピンを使ったゲームは何ていう名のゲームだったんだろう…Python で作ってみたらどうだろうと考えたら,
割と簡単にいけるんじゃないかと思ったので,作ってみる## ルール
4桁の数字行う場合のルールを書くと次のようだ
– 親が決めた4桁の正解数字(使ってよい数字は0から9まで)を,子が当てる
– 子が予想した数字を正解数字と比較して,Hit 数と Blow 数を言う
– 数字とその数字が使われている場所(桁)があっている場合は Hit
– 数字はあっているが,数字が使われている場所(桁)があっていない場合は Blow
– 例えば,正解が「2578」のとき,「1270」は 1 Hit 1 Blow となる
–