- 1. 【ffmpeg】ImportError: libffi.so.6: cannot open…..【Ubuntu 20.04 LTS】
- 2. Djangoでmysqlclientをインストールしようとしたらerror: command ‘gcc’ failed with exit status 1と出た
- 3. [Raspberry Pi] ラズパイでステッピングモータ制御
- 4. Django REST Frameworkにおけるカスタムバリデーションの書き方
- 5. ゼロから始めるLeetCode Day8 「1302. Deepest Leaves Sum」
- 6. yukicoder contest 246 参戦記
- 7. 画像処理100本ノック①
- 8. ラズパイタンク製作記 〜ソフトウェア編〜
- 9. filter vs 内包表記
- 10. PyTorchの気になるところ(GW第1弾)
- 11. scikit-learnでガウス過程回帰
- 12. python 初心者のための文法の整理
- 13. 【Python】初中級者が解くべき過去問精選 100 問を解いてみた【Part3/22】
- 14. pynputによるキー検出
- 15. サーバー構築するまで寝れません!!(1日で作るPythonサーバー入門)
- 16. タイタニック号の乗客の生存予測 を体験してみる(探索的データ解析編)
- 17. ゼロから始めるLeetCode Day7 「104. Maximum Depth of Binary Tree」
- 18. 非線形連立方程式ってPythonで簡単に解けるんですね
- 19. 言語処理100本ノック 2020 第10章: 機械翻訳 (90-98)
- 20. さくらのレンタルサーバで Python 3 を野良ビルドした (備忘録)
【ffmpeg】ImportError: libffi.so.6: cannot open…..【Ubuntu 20.04 LTS】
嬉々としてUbuntu 20.04 LTSに上げたところ、`ffmpeg`関連の初耳エラーが出てきました。華麗に解決したので忘れないうちにメモ
# 原因
`libffi.so.6`が無いよ
# 解決方法
`/usr/lib/x86_64-linux-gnu/`に`libffi.so.6`を配置しよう。もしくは同階層にあるかもしれない`libffi.so.x`を**alias**してやり過ごそう
“`bash:/usr/lib/x86_64-linux-gnu/
sudo ln -s libffi.so.7 libffi.so.6
“`
Djangoでmysqlclientをインストールしようとしたらerror: command ‘gcc’ failed with exit status 1と出た
# 環境
macOS Catalina 10.15.4
# エラーが出た!
新しく
“`
python3 -m venv env
““
で仮想環境を構築してから“`
pip install mysqlclient
“`を実行したらタイトルのエラーにぶち当たる。
まず誰か先に同じエラーにぶちあたってる人いるでしょ!と思い調べてみると2パターンあるっぽくて、まず先のケースがこれ。
[Cannot install Pillow in macOS Mojave using brew #3438](https://github.com/python-pillow/Pillow/issues/3438#issuecomment-435169249)
こちらの方はpillowをpipでインストールしようとしたらエラーを出したようで、その原因はmojaveによるものらしい。
それで、解決策としては“`
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers
[Raspberry Pi] ラズパイでステッピングモータ制御
#はじめに
ロックダウン中に屋内でできる新しい趣味でも見つけようかなあと思ってラズパイ買ってみました.モータ制御できたら後々実験で役立つかなあと思いステッパーモータも一緒に買ったので,制御してみます.定速度で回転させるだけでも面白いですが,任意の運動をできるようにすることを目標としました.電気電子回路の知識ほぼゼロからのスタートでしたが,ネットに色々情報が落ちていて簡単にできました.本当にありがたいです.いろいろな方法で制御できるようですが,私が一番簡単だと思った方法を紹介したいと思います.#ハードウェア
以下に使用したハードウェアをリストしておきます.* Raspberry Pi 4B 2GB
* NEMA17ステッパーモータ([Amazon](https://www.amazon.co.jp/s?k=nema17&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ref=nb_sb_noss_2)で2000)
* L298N デュアルHブリッジ DCステッパーモータドライバ
– 激安のモータドライバ.Arduino+ステ
Django REST Frameworkにおけるカスタムバリデーションの書き方
# 概要
アプリを作るときに調べたので忘れたときに呼び出せるように書いておきます。Djangoではformでcleanメソッドを入れたりしてバリデーションしていましたが、そもそもDjango REST Frameworkだとそもそもカスタムバリデーションを書くんだろうと思い、調べました。
# 書き方
`seliarizers.py`にそれぞれのバリデーションを書きます。
## 関数ベース
以下のように書きます。
“`Python
# 成人かをバリデーション
def validate_age(age):
if age < 21: raise serializers.ValidationError('未成年には早すぎます!') ``` ## クラスベース クラスベースでは`__call__`メソッドを使って書きます。 なお、クラスベースでは再利用性が高いので基本はこっちを使っておくとコードの見通しが良くなります。 ```Python class AgeValidator(object): def __init__(self,num):
ゼロから始めるLeetCode Day8 「1302. Deepest Leaves Sum」
#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。その対策としてLeetCodeなるサイトで対策を行うようだ。
早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。
せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。
[Leetcode](https://leetcode.com/)
基本的にeasyのacceptanceが高い順から解いていこうかと思います。
前回
[ゼロから始めるLeetCode Day7 「104. Maximum Depth of Binary Tree」](https://qiita.com/KueharX/items/539024dbb9a91305a86a)# 問題
[1302. Deepest Leaves Sum](https://leetcode.com/problems/
yukicoder contest 246 参戦記
# yukicoder contest 246 参戦記
## [A 1040 垂直大学](https://yukicoder.me/problems/no/1040)
まあ、90度か270度だけが垂直なので書くだけですね.
“`python
N = int(input())t = N % 360
if t == 90 or t == 270:
print(‘Yes’)
else:
print(‘No’)
“`## [B 1041 直線大学](https://yukicoder.me/problems/no/1041)
N≤100 なので、全ての2点の組み合わせを試せばいいだけなので特に悩むことはありませんね. 当然二点を通る直線の方程式なんて忘れてしまっているのでググりました. 通ったかどうかの判定に適当に `< 0.0001` を使ったけど、本来どうするべきだったのかな. ```python N = int(input()) XY = [list(map(int, input().split())) for _ in range(N)] res
画像処理100本ノック①
画像処理100本ノックに最近取り組み始めたので実装例を一部。今回はQ1-10の中からいくつかピックアップしました。
## Q6 減色処理
処理の式は以下“`math
val = \left\{
\begin{array}{ll}
32 & (0 \leq x < 64) \\ 96 & (64 \leq x < 128) \\ 96 & (128 \leq x < 192) \\ 96 & (192 \leq x < 256) \\ \end{array} \right. ``` ```python: def reduce(pix): if 0 <= pix < 64: return 32 elif 64 <= pix < 128: return 96 elif 128 <= pix <192: return 160 else: return 224 d
ラズパイタンク製作記 〜ソフトウェア編〜
ハードウェア編は[こちら](https://qiita.com/shi78ge/items/e4d9dd90dc8274431e45)
まずは動作させているところの動画です。
filter vs 内包表記
# `filter`と内包表記どっちが速いの?
内包表記で条件つけた場合と `filter` に `lambda` で条件渡した場合、どっちが速いの?
“`python
iter = 10000# 内包表記
for _ in tqdm(range(iter)):
[i for i in range(iter) if i % 2 == 0]# filterのみ
for _ in tqdm(range(iter)):
filter(lambda i: i % 2 == 0, range(iter))# filterからのlistにキャスト
for _ in tqdm(range(iter)):
list(filter(lambda i: i % 2 == 0, range(iter)))
“`
それぞれ比べてみました。|条件| `iter/s` |
| —- | —- |
|内包表記|1531.51|
|`filter`のみ|1169176.56|
|`filter`からの`list`にキャスト|880.30|~~`filter`
PyTorchの気になるところ(GW第1弾)
# はじめに
GW今年はどこへも行けないのですね、、、。せっかくなので記事を書いていきたいと思います(毎日1記事目標に)。PyTorchを普段触っているのですが、細かいところをなんとなくで今まで過ごしてきたので、今回しっかりまとめていきたいと思います。自分の備忘録になっていますが、少しでも参考になればと思います。
# この記事の対象者
– `.copy()`, `.detach()`, `.bachward()`がよくわかっていない方
– `nn.Conv2d`のweightやbiasの取得ってどうやんの?
– `model.eval()`って結局何してる?って方
– `torch.no_grad()`, `torch.set_grad_enabled()`の区別がわからない方
– `F.relu`, `nn.ReLU`の違いなんやねんって方コアなネタが多いですが、よかったら参考にしてみてください。
# この記事の内容
**1. Tensorの操作テクニック**
**2. Layerのweightやbiasの取得と初期化**
**3. model.eval()の振る
scikit-learnでガウス過程回帰
https://github.com/kanamori-takafumi/book_StatMachineLearn_with_Python/blob/master/ch13gaussprocess.ipynb
“`python
from IPython.display import HTMLHTML(”’
”’)
“`“`python
import
python 初心者のための文法の整理
#対象の目安
– 最初の言語にpythonを選んだ幸運なプログラミング完全初心者
– 他の言語を少しだけ学んだことがあるものの、何もわからないpython初心者
– pythonを学びたいけど、どのようにして基本的な文法を学べばよいかわからない人(まずはprogateから始めましょう!!)# 筆者の現状
駆け出しの弱々エンジニアです。来月から自社開発メインのweb系企業でエンジニアとしての人生スタートです。今まではRubyやRailsを中心に学習をしてきました。将来的に機械学習を使って、会社のデータの整理や活用をしたり、競技プログラミングをしたいという思いがあり、**webも機械学習も競プロもできるpython**に手を出し始めました。以下はとりあえず自分が調べた文法を整理していきます。###複数行の入力を取得したい
競プロではそもそも与えられたデータをきちんと取得できないとお話にならない。ただ、これがなかなか本やprogateなどでは扱われていないのでここで整理しておこう。“`python:入力値の取得
例)入力:
あ
や
せs = [input() for
【Python】初中級者が解くべき過去問精選 100 問を解いてみた【Part3/22】
**目指せ水色コーダー!!!!!!**
ということで、
[レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】](
https://qiita.com/e869120/items/eb50fdaece12be418faa#2-3-%E5%88%86%E9%87%8E%E5%88%A5%E5%88%9D%E4%B8%AD%E7%B4%9A%E8%80%85%E3%81%8C%E8%A7%A3%E3%81%8F%E3%81%B9%E3%81%8D%E9%81%8E%E5%8E%BB%E5%95%8F%E7%B2%BE%E9%81%B8-100-%E5%95%8F)(@e869120さん)
>
AtCoder で水色コーダー、つまりレーティング 1200 を少ない問題数で達成するために、茶色コーダー・緑コーダーにとって適切な教育的良問を 100 問集めました。こちらの記事の`初中級者が解くべき過去問精選 100 問`
を**Python**で解いていきます!
@e869120さんに感謝!!!!!!###過去記事リンク
[【Python】
pynputによるキー検出
Pythonには、多くの機能を備えた pynput モジュールがあります。
今回は、pynputを使ってキー検出をしていきます。
#開発環境
MacOS Catalina
Python 3.8.2
opencv-python 4.2.0.34
#キー検出
早速やっていきたいと思います!“`python
from pynput.keyboard import Key, Listener
def on_press(key):
print(‘{0} pressed’.format(
key))def on_release(key):
print(‘{0} release’.format(
key))
if key == Key.esc:
# Stop listener
return False# Collect events until released
with Listener(
on_press=on_press,
on_release=on_rel
サーバー構築するまで寝れません!!(1日で作るPythonサーバー入門)
# はじめに(全体の流れ)
どうも,授業が始まらず家でニートしている大学生です.今はニートで暇だし簡易的なサーバーでも作って見ようかなと思い,**サーバー構築するまで寝れない**という制限を自らに課し,1日で出来る範囲で実際に作ってみました.初心者なので1から作るとさすがに1日では出来そうになく,今回はPythonで**socketserver**という標準のサーバー構築用ライブラリ(というかフレームワーク)を使って実装してみました.サーバー立ち上げまでの流れは以下のとおりです.1. どのようなデータを通信するか考える
2. データ送受信のプロトコルを考える
3. 考えたプロトコルのパーサーを作る
4. リクエストハンドラを作る
5. 実行ファイル(サーバーを立ち上げるファイル)を作る### 記事を投稿した経緯
実際にこの「サーバー構築チャレンジ」を行っているときはこのような記事を書くことは考えていませんでした.しかし今回このように記事として投稿している理由は,Pythonを使ったサーバーの構築方法について解説している記事があまりにも少ないと感じたからです.あったとしてもWeb
タイタニック号の乗客の生存予測 を体験してみる(探索的データ解析編)
# 目的
機械学習の一連の流れをタイタニック号の乗客の生存予測モデル作成を通して体験する。
先駆者の残してくれた記事に習い、どういう思考プロセスで開発しているのかを知る。
わからない関数、処理があれば調べてコメントとして残しておく。# 参考元
以下の「キヨシの命題」様の記事を参考にさせていただきます。タイタニック号の乗客の生存予測〜80%以上の予測精度を超える方法(探索的データ解析編)
https://yolo-kiyoshi.com/2018/12/16/post-951/# 探索的データ解析編 をやってみる
「キヨシの命題」様のサイトには複数のタイタニック号の乗客の生存予測の記事が存在していた。
私はその中でも副題に「80%以上の予測精度を超える方法」がついている2記事を体験してみることにした。2記事と言っても前編と後編に別れている。
「探索的データ解析編」と「モデル構築&推論編」である。本記事では前編の「探索的データ解析編」を体験する。
その前に探索的データ解析のことを理解しておく必要があるので以下復習。>探索的データ解析
英語ではExplanatory
ゼロから始めるLeetCode Day7 「104. Maximum Depth of Binary Tree」
#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。その対策としてLeetCodeなるサイトで対策を行うようだ。
早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。
せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。
[Leetcode](https://leetcode.com/)
基本的にeasyのacceptanceが高い順から解いていこうかと思います。
前回
[ゼロから始めるLeetCode Day6 「1342. Number of Steps to Reduce a Number to Zero」](https://qiita.com/KueharX/items/fb274973c9fc7cd920e3)サボらず1週間続きました。めでたい。
# 問題
[104. Maximum Depth o
非線形連立方程式ってPythonで簡単に解けるんですね
数値計算をやっていると、非線形連立方程式を解く機会ってまぁまぁありますよね。もう何年も前ですが大学院生で研究をやっていた頃は、Fortranでコトコト実装していました。最近Pythonでプログラムを書く機会が増えてきて、再び非線形連立方程式を解く場面に遭遇しました。非線形連立方程式の解法として有名なものと言えばNewton法ですが、ゼロから実装するの面倒なのでいいライブラリがないか探しました。
# 「Scipy.optimize.root」で解けちゃう
半端じゃなく簡単でした。今回は例題として以下のような非線形連立方程式を解きたいと思います。$$
\begin{align}
x^{2}+y^{2}-1=0 \\\
x=0
\end{align}
$$ソースコードは以下の通りです。あとで簡単な説明をします。
“`python
import numpy as np
from scipy import optimize# 解きたい関数をリストで戻す
def func(x):
return [x[0]**2 + x[1]**2 -1.0,
言語処理100本ノック 2020 第10章: 機械翻訳 (90-98)
先日,[言語処理100本ノック2020](https://nlp100.github.io/ja/)が公開されました.私自身,自然言語処理を初めてから1年しか経っておらず,細かいことはよくわかっていませんが,技術力向上のために全ての問題を解いて公開していこうと思います.
すべてjupyter notebook上で実行するものとし,問題文の制約は都合よく破っていいものとします.
ソースコードはgithubにもあります.[あります](https://github.com/nymwa/nlp100/blob/master/chapter10.ipynb).
9章は[こちら](https://qiita.com/nymwa/items/4542b45837a10766890b).
Python3.8.2を使用しました.GPUにはTesla V100を4台使用しました.
# 第10章: 機械翻訳
> 本章では,日本語と英語の翻訳コーパスである[京都フリー翻訳タスク (KFTT)](http://www.phontron.com/kftt/index-ja.html)を用い,ニューラル機
さくらのレンタルサーバで Python 3 を野良ビルドした (備忘録)
# さくらのレンタルサーバで Python 3 を野良ビルドした (備忘録)
Python 2.7 も EoL で Python 3 に移行したいのに、さくらのレンタルサーバに Python 3 が来る気配は無いので自分でビルドした記録.
“`sh
$ cd /home/xxx/local/src/
$ wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3rc1.tar.xz
$ xz -dc Python-3.8.3rc1.tar.xz | tar xf –
$ cd Python-3.8.3rc1
$ ./configure –prefix=/home/xxx/local/python-3.8.3rc1
$ make
$ make install
$ cd ../../python-3.8.3rc1/bin
% ./pip3 install –upgrade pip
$ ./pip3 install Genshi
$ ./pip3 install SQLAlchemy
$ ./pip3 install merc