- 1. [マイコン]シリアル通信をCOBSでエンコード・デコードしてみた
- 2. 【Python】複数エクセルファイルのPDF生成を2分で終わらせてみた
- 3. [python]ニコニコ動画のダウンロード mylistから一括
- 4. スマートウォッチから取得したデータを分析してみる
- 5. PythonでPostgreSQLを操作する(psycopg2)
- 6. 正規表現:曖昧なパターンはエンジンによって動作が変わる(教訓)
- 7. bertを使っているときにcuda out of memory にはまった。
- 8. pandas入門 -DataFrameとSeries-
- 9. スタート
- 10. 様子見と自作関数【txtfile】
- 11. Pythonでライブラリの調査をする際のメモ
- 12. ラズパイでOrgan LED Visualizer
- 13. Spotify API から楽曲の解析情報を取るpart2
- 14. スッキリわかるSQL入門第2版のデータ構築
- 15. FlaskをGunicornで稼働させてみた
- 16. 指定した範囲内における自然数の試行回数を割り出し、試行回数の最大値を持つ自然数を算出するプログラムを作る 【コラッツ予想】
- 17. 【初学者】文系インフラエンジニアのプログラミング勉強法【Python】
- 18. 文系大学生が半年でDSインターンを始めるまでにやったこと
- 19. Pythonしか知らないプログラマの地雷率の高さ
- 20. ダイエット中でも限界までお寿司を食べたい!をPythonで最適化してみた
[マイコン]シリアル通信をCOBSでエンコード・デコードしてみた
# この記事は?
お仕事でCOBSエンコード・デコードを扱うことになったので、そのお勉強した記録です。
pythonで書いたサンプルコードがあります。
COBSの詳しい解説はしてないです。# COBSって?
主にRS232Cの通信で使われます。
RS232Cの通信はデータ垂れ流しなので、受信側はどこがデータの区切りか分かりません。
COBSでは、送信データに区切り値を付加することで、データの区切りが分かるようにしています。
「でも、その区切り値と同じ値が、送信データ内にもあった場合どするの?」と疑問が発生しますが、COBSエンコードでは、
**「区切り値と同値のデータを、次に同値のデータが存在する位置に置き換える」**
という符号化で解決しています。
復号は、その置き換えられた位置情報を元に行います。
考えた人頭いいですよね。
詳細な方式はこちらを見ると良いです。
https://en.wikipedia.org/wiki/Consistent_Overhead_Byte_Stuffing# データ区切り方法は他にもあるのでは?
一定時間、受信データの途絶で区切りを付ける方法
【Python】複数エクセルファイルのPDF生成を2分で終わらせてみた
## ◇作ろうと思ったきっかけ
複数のエクセルファイルをPDF保存することがめんどうになり、作成しました。
## ◇このツールで出来ること
1.複数のエクセルファイルをそれぞれPDF保存
2.保存したPDFを特定のフォルダ配下に配置
## ◇言語バージョン
“`
C:\Users\test>python –version
Python 3.8.10
“`
## ◇実装
“`
# ———PDFを作成———
def save_pdf(file_path, new_file_path):
file_pdf = new_file_path[:-4]+”pdf”
app = com.Dispatch(“Excel.Application”)
app.Visible = False
app.DisplayAlerts = False
book = app.Workbooks.Open(file_path)
# 特定のシートを指定
book.Worksheets(“Sheet1”).Activate()
[python]ニコニコ動画のダウンロード mylistから一括
ニコニコ動画のダウンロード マイリストから一括
ただのメモに近い。“`python
# -*- config: utf-8 -*-
#——————————————————————————
# import
#——————————————————————————
from niconico import NicoNico
import pprint
import concurrent.futures
import time# 並列用のラッパー
def wapper_x(line_list, max, b):
for i in range(len(line_list)):
if i % max == b:
url = line_list[i][1]
with client.video.get_video(
スマートウォッチから取得したデータを分析してみる
# Garmin製スマートウォッチ
先日、Garmin社のVenu2Sというスマートウォッチを興味本位で購入しました。
Apple Watchと迷ったのですが、ヘルスメーター的な使い方をしてみたかったので、悩んだ挙げ句こちらを買いました。こんな時計です。
https://www.garmin.co.jp/products/wearables/venu-2s-tundra-champagne/# 意外に開発者向けツールが充実していた
はじめは、「アプリがあってスマホ連携ぐらいはできるんだろうな」と思っていたのですが、公式SDKがあってホーム画面に表示するデータをカスタマイズできたり、取得したデータは全部CSVで出力できたりと、意外に面白い機能がたくさん揃っていました。取得できている主なデータは以下のようなものです。
* ストレスレベル
* 登った階数
* 歩数
* 血中酸素
* 呼吸数
* 睡眠時間
* 睡眠スコア
* 消費カロリー
* Body Battery(残り体力的な数値です)Body Batteryやストレスレベルは心拍等の生の値とは違い、取得できているデータ
PythonでPostgreSQLを操作する(psycopg2)
# インストールが必要パッケージ
“`
# dnf -y install python3-devel postgresql-devel
# pip install psycopg2-binary
# pip install psycopg2
“`# データを出力する
“`
import psycopg2# 接続情報を記入
dsn = “dbname=shop host=psql user=dbuser password=dbpasswd”# コネクトオブジェクト生成
conn = psycopg2.connect(dsn)# カーソルオブジェクト生成
cur = conn.cursor()# SQLを実行する
cur.execute(“SELECT * FROM shohin”)# データをすべて出力
print(cur.fetchall())# オブジェクトをクローズする
cur.close()
conn.close()
“`## いろいろなデータの出力
データを1つだけ出力
“`
print(cur.fetchone())
“`
1つず
正規表現:曖昧なパターンはエンジンによって動作が変わる(教訓)
検索してどういうことなのか調査してみようとしたのですが、上手に検索できませんでした…。
検索しても全然それっぽい情報が出てこない!
のでとりあえず記事にしてみます。もし原因をご存じの方いましたらお教えいただけると嬉しいです…!
# 環境
– グループ1(JavaScript系)
– JavaScript (Firefox 104.0.2)
– JavaScript (Google Chrome 105.0.5195.127)
– グループ2(Perl系など)
– PCRE (PHP 7.3.11 & PCRE 10.32 2018-09-10: [RegExr.com](https://regexr.com/))
– Python 3.10 (re モジュール)
– コメントに頂いた検証:Ruby 3.1.2 (Onigmo)
– コメントに頂いた検証:CotEditor 4.3.4 (ICU)PCREは「PCRE ライブラリは、Perl 5 と同じ文法構文を用いた 正規表現パターンマッチ処理を実装した関数群ですが、多少異なる点もあります (以下を
bertを使っているときにcuda out of memory にはまった。
## 解決策
① cmd 上で nvidia-smi と打ち、GPUの使用量を確認
② かなり使っていた場合、cmd 上でtaskkill /im cmd.exe と打ち、空き容量を増やす。
③ jupyter が落ちるので、再起動し、バッチサイズをなるべく小さくして再チャレンジ。
pandas入門 -DataFrameとSeries-
### 初めに
pythonのpandasについて初学者なりにまとめたいと思います。
学習に使っているのはこちらのキノコードです。https://kino-code.com/category/introductory-course-pandas/
### pandasとは
データ解析を支援する機能を提供するライブラリです。
下記に当てはまる際に利用するのがおすすめです。>毎日なんらかの情報を集計・分析する必要がある人
組織の課題を発見・解決したい人
株価や為替の相場、財務データの分析をしたい人
さまざまなデータを統合して相関関係を見出したい人https://aidemy.net/magazine/618/
### できること
csv、Excelファイルを読み取る
列や行の操作
計算
フィルターで抽出
グループにまとめる
表のマージ
欠損値の操作
時系列データの取り扱い
グラフの描写
etc…ExcelやSQLができることはある程度こなすことができる。
pandasは人工知能開発や、データ分析をする際のデータの前処理に使われることが多いです。### データ構造
スタート
私は現在flaskによるtodoアプリを基本構成にしてsqlite3とwebスクレイピングの合成を行おうと考えております。
これが私のスタートです。
様子見と自作関数【txtfile】
全くのQiita初心者なのでまずは様子見の記事を書いてみよう。
柄田鞘、もちろんハンドルネーム。
Python歴4年。
しかし全くの独学かつエンジョイ勢ゆえ実力で言ったら
**多少齧った小学生以下。**わざわざこれを書くのは、
万が一 **”ガチ”** の方々に発見されて
レベルの低さをツッコまれたら心が折れてしまうから。環境はipadでPythonista3。
PCも持ってるが使ってない。笑ってくれ。
向上心はそんなにない。
情報収集というより本当にただ備忘録として使いたいからアカウントを取得した。目下の目標(目被り)は
**会話のできる人工知能型チャットボット**を作ること。タメ口調なのはキャラが定まってないから。
以上です。
予防線張りまくりでダサいな。
…ここで終わろうかと思ったが怖くなって他の記事を読んだら
**アァーーッッ!!**
皆様初投稿から予想を遥かに超えて読み応えのある記事を書かれておられる…(二重敬語)
仕方がないので以前作ったテキストファイルを読み込む自作の関数を開陳してひとまずはお茶を濁そう…
# txtfile関数
Pythonでライブラリの調査をする際のメモ
## dirとinspect.getsourceがいい感じ
未知のライブラリとか、普段使ってるライブラリだけど他にどんなメソッドがあるんだろ?って時にオススメ。“`py
import importlib
import inspect
from pprint import pprintlibrary_name = input(‘調査対象のライブラリ名を入れてちょ :’)
m = importlib.import_module(library_name)
print(‘—–
—–‘)
for c,a in enumerate(dir(m)):
print(f”{c:4}, {a:20}, {type(eval(‘m.’ + a))}”)print()
print(f”—–—–“)
print(inspect.getsource(m))
“`## 出力結果
※inputに「pprint」を入れた場合(出力結果長いので途切れてるけど、ソースが長々と
ラズパイでOrgan LED Visualizer
# Organ LED Visualizer
Youtube動画で、ピアノ演奏時にLEDで光らせている動画を見かけます。
同じことをオルガン(上鍵盤・下鍵盤・足鍵盤)でもやってみました。以下を参考にしています。
https://github.com/onlaj/Piano-LED-Visualizer
うちのオルガンは、ローランドのミュージックアトリエという機種です。
ヤマハのエレクトーンは有名ですが、それのローランド版のようなものです。
上鍵盤・下鍵盤・足鍵盤・エクスプレッションペダルそれぞれを光らせることにしました。## 動画
発表会で明け星を演奏したので、今回はその曲にあわせて光らせ方を変えるようにしました。
これがMIDI記録したものを再生した映像です。動画左下はラズパイの画面出力です。
デバッグしながらだったので、ノートON情報なども出力しています。## 回路図
回路はこんな感じです。
LEDテープはWS2812B、144LED/mのテープを、上鍵盤、下鍵盤、足鍵盤、エクスプレッション
Spotify API から楽曲の解析情報を取るpart2
# はじめに
ID取得とかSpotify APIを使うのに必要なことは既に理解している前提で話していきます。
まだの方は[Spotify API をPythonでちょっと遊ぶ](https://qiita.com/supertower/items/2f6da271cf16389d6e58)からどうぞ
あとはノート代わりと自分のモチベ維持のために書いてるのでそんなことわかってるよ!っていう場所もあると思います。
先にもう一つ注意事項としてはこの投稿の数日後にもう一つ同じ内容が投稿されると思うんですけど、そっちの方が簡単&正確なのでその点だけよろしくです
ではスタート
# 今回の目標
前回の[Spotify API から解析情報をとる](https://qiita.com/supertower/items/1d42354dab4c152cfe3a)ではSpotifyブラウザ版のURLからアーティストのIDを取ってきてました。それを色々して楽曲のIDをゲットしたんですけど、この方法だとアーティストの上位10位しか取れない&ブラウザ版を立ち上げるのが面倒くさいというデメリットがあったわけ
スッキリわかるSQL入門第2版のデータ構築
参考書籍
[スッキリわかるSQL入門第2版](https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BSQL%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E3%83%89%E3%83%AA%E3%83%AB222%E5%95%8F%E4%BB%98%E3%81%8D-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1%E6%B8%85%E5%96%AC/dp/4295005096/ref=sr_1_1?adgrpid=65391235197&gclid=EAIaIQobChMIzYq5p4uM-gIVzXeLCh3C4gjZEAAYASAAEgLAnfD_BwE&hvadid=618553198077&hvdev=c&hvlocphy=1009285&hvnetw=g&hvqmt=e&hvrand=602
FlaskをGunicornで稼働させてみた
# はじめに
こちらの記事の続きで書いてます。
Gunicornメインで、Flaskにはほぼ触れない内容かも。https://qiita.com/Nats72/items/793330ae2f1a82102fca
# 本番サーバーで稼働させる
本番稼働させるには、**gunicorn**や**uWSGI**といったWEBサーバーを使います。
今回は、**gunicorn**を使ってWEB公開してみます。## gunicornをインストール
gunicornはpipでインストールできます。
“`
# pip install gunicorn
“`## gunicornで起動させる
実行させたいflaskのファイルがあるディレクトリで、以下のコマンドを実行します。
-wは、–workersの省略形で、ワーカープロセス数を指定できる。
-bは、–bindの省略形で、gunicornのアドレスと待受け(Listen)ポートを指定できる。
index.pyのappというアプリケーションを実行します。
“`
# gunicorn -w 1 -b 0.0.0.0:80 ind
指定した範囲内における自然数の試行回数を割り出し、試行回数の最大値を持つ自然数を算出するプログラムを作る 【コラッツ予想】
(使用する言語はpythonのみ 専門的な数学の知識は一切使わず、ライブラリも極力使用しません)
【コラッツ予想とは】
適当な自然数を決める。
自然数が偶数の場合は2で割り、奇数の場合は3倍して1を足す それをひたすら繰り返していくとどんな自然数も1になるというのがコラッツ予想例えば”5″で計算するとどうなるか
5*3 + 1 = 16
16/2 = 8
8/2 = 4
4/2 = 2
2/2 = 1結果は5回試行を繰り返したのち1に収束した。
このように、どれだけ大きい自然数でも必ず1に収束するらしいが、その証明方法は未だに見つかっていない。そこで今回は、コラッツ予想の証明は一旦諦め、適当な数字の試行回数を算出するプログラムを作ることにした。
次のようなシンプルなコードで実行することができる。
“`
#Collatz予想ntnum = int(input(‘自然数を入力してください >>’))
count = 0while ntnum != 1:
if (ntnum % 2 == 0):
ntnum = ntnum/2
e
【初学者】文系インフラエンジニアのプログラミング勉強法【Python】
# これから先生きのこるには
自分は文系出身のインフラエンジニアです。
プログラミングは無縁だと思って生きていました。
業務上必要になる事が少ないため周りの人も、同じような人が多かったです。
しかし昨今、プログラミングの必要性を感じて学習をしているため記事にしたいと思います。IaaSやクラウドネイティブな開発が一般的になりました。
その流れでアプリケーションエンジニアがインフラ領域に携わる事が増えていると感じています。
サーバーレス環境はOSやミドルウェアを意識しなくてよいためインフラ的な要因が少ない為です。また、AWSなどのクラウドサービスではAPIを公開しており利用者で自動化などの取り組みが可能です。
プログラミングでAPIを叩いてインフラを管理するのです。
するとプログラミングが全く出来ないとインフラ業務の幅も狭くなってしまいます。
プログラミングが出来る人と出来ない人の格差が圧倒的に広がっていくと思っています。以上のことから、これから先生きのこるにはインフラエンジニアもプログラミングを勉強した方がいいと考えています。
![character_kinoko.png
文系大学生が半年でDSインターンを始めるまでにやったこと
はじめに
–今回初めてqiittaを触るということで、文系大学生だった自分がありがたいことにデータサイエンティストとして働けるようになるまでにしてきたことをまとめてみました。
執筆目的としては、今後qiitaを書いていくにあたっての動作確認という属性が強いのでご了承いただけると幸いです。
0-1 全体の流れ
–
1. 自分自身について
1. コンペ出場初期
1. 勉強開始から2ヶ月で成果を出しに行ったSonyコンペ
1. インターンの応募きっかけと聞かれたこと0-2 こんな人に読んでほしい!
–
– 文系の就活が肌に合わない…?学生の方
– デジタルに強くなりたいけど、何から始めていいのかわからない学生、社会人の方
– データサイエンスってなに?どうやって勉強するの? って感じで興味を持っている方1-1 自分自身について
–そもそも、ダブルライセンサーの東大医学部の方のような人がパパッと勉強してデータサイエンティストになった、と聞いても全く参考にならないと思うので、参考までに自分の属性を笑
– 地方公立高校出身 / 文系大 / 経済学部 / 高校までは野球部,
Pythonしか知らないプログラマの地雷率の高さ
# はじめに
ただの愚痴です最近ポンコツ案件に入ってそれでなくてもポンコツの私よりデキが悪くて愚痴らなきゃやってられないので
ただそれだけです
別にみんながみんなそうだとは思わないけどまあ、うん。経験則はある。読んでて深不快に思われても私はなんの責任も取らないのであしからず。
# Pythonの何が悪いのか
スクリプト言語だからじゃね?
型宣言無いし変数好きな場所で宣言できるし他にも色々。
例えばCみたく関数の頭でしか変数宣言できなければ
書くのは不便でも変数の目的を予め知ってら処理見れるから可読性は上がる。(目次先読みできる感覚つまりPythonは書きやすいけど可読性が?になりやすい。
Pythonの思想で
「1つの処理を実現するのにベストな方法はいくつもない」
みたいな話があった気がする。
インデントに意味があるのも、
Pythonの思想で、誰が書いても同じコードになる。
みたいなのがあったようななかったような……絶対嘘だろ…
# スクリプト言語ってなんじゃらほい
厳密にスクリプト言語って定義は無いんだろうけど、
Pythonとかjsとかあのへん対になるの
ダイエット中でも限界までお寿司を食べたい!をPythonで最適化してみた
# 動機
絶賛ダイエット中の筆者。そんな時、考えるのは「限界までお寿司を食べたい!」ということ。ということで、ダイエット中でどれだけどんなお寿司を食べられるのかを最適化してみました!
# 使用データ
今回は、PFCバランス(タンパク質、脂質、炭水化物の比率)も考慮に入れたいため、
PFCの値まで公開してくださっている[活美登利](https://katumidori.co.jp/)さんの[こちらのデータ](https://katumidori.co.jp/images/2018/07/19d93145d6cd585a53ee5eab9e2bc879.pdf)を使用します。※ PDFは、katsumidori_pfc.pdf という名前でダウンロードした前提で下記を進めていきます。
# ソルバー選択
Pythonの最適化ライブラリ [PuLP](https://coin-or.github.io/pulp/)を使用します。# データ成形
今回しようするデータはPDFデータとなっています。
PDFデータからpandas DataFrameを作成したい場合、取れる選択肢は下記