Python3関連のことを調べてみた2020年04月16日

Python3関連のことを調べてみた2020年04月16日

AWS EC2の初期環境構築:Emacs, zsh, Python3(Miniconda)

# TL; DR

まっさらなEC2インスタンスにログインして作業環境を構築した際のメモ

– `emacs-nox`をリポジトリから導入
– `zsh`をリポジトリから導入
– `/etc/passwd`を編集しシェルを変更
– `/etc/locale.conf`を編集し文字化けを解消
– `.zshrc`を編集し変更を適用
– `Miniconda3`をインストーラから導入
– `/path/to/conda init zsh`を実行

# はじめに

本記事ではAmazon Linux 2を使っているが,Ubuntu Serverを使う場合もあるため,以下に注意する.

– Amazon Linux 2のデフォルトユーザ名は`ec2-user`になる.Ubuntu Serverでは`ubuntu`になる.

– Amazon Linux 2はRedHat系なので,パッケージマネージャには`apt`ではなく`yum`を使う.

# リポジトリの初期化
“`
$ sudo yum update
“`

Debian系の`sudo apt updat

元記事を表示

自分のITライフを振り返りつつ、プログラミング言語の学ぶ順番について考える

http://www.minekawada.com/program-language-oder.html

目次
自分のプログラミング言語の学んできた順番

川田さとし、C言語を始める
川田さとし、Javascriptを始めるの巻
川田さとし、Pythonに目覚める
川田さとし、C#で仕事としてのプログラミングへ

後編は作成中

元記事を表示

PytorchでDataFrameのデータをNNで訓練できる形に整形する

# 概要
ニューラルネットワークでデータを訓練させたり検証したりする際に、データを(データ群,ラベル)の形に整形する必要がありますよね。
MNISTやCIFAR10だと事前にこの形になっているんですが、手持ちのデータを使うときには自分でこの形にする必要があります。が、理解するまで時間がかかったのでこちらにしたためておきます。

尚、基本的な方法については英語でどんぴしゃ回答してる方々がいたため、英語が行ける方は以下の一連のやりとりをご覧ください。
[Convert Pandas dataframe to PyTorch tensor?](https://stackoverflow.com/questions/50307707/convert-pandas-dataframe-to-pytorch-tensor)

このQiitaでは文脈を補って少し詳しく解説しているので、適宜必要なところだけサク読みして下さい。

##データとラベルに手持ちのデータを分ける

###DataFrameからラベルを引っ張って来る(ラベルのコラム名:target)

“`python
train_labe

元記事を表示

仮想マシン配置最適化問題(簡単版)をblueqatで解いてみた

前回はblueqatを使ってVQEの動作確認を実施した。今回は、仮想マシン最適化問題(簡単版)をblueqatのVQEで解いてみる。

# 仮想マシン配置最適化問題とは
一言で表すと、**「仮想化基盤において、仮想マシンを無理なく詰め込むことができる仮想マシンの配置ってどんな配置?」**っていうのを求める問題です。私が現在勝手にそう呼んでいますが、正式名称があるのでしょうか・・・?

# この問題を考えるに至った背景
私の日頃の業務は、VMware製品を利用してオンプレ環境での仮想マシン提供、基盤全体の運用保守を行っています。基盤としては700VM程度の中規模基盤です。業務をしていて思うのは、「仮想マシンの配置を工夫すればもう少しリソース(特にCPU、メモリ)の空きができるんじゃない?」ってことです。

どこの基盤管理者も同じだと思いますが、新規の仮想マシンを提供する時は以下のことを特に意識しているんじゃないでしょうか?

– 仮想マシン搭載予定の物理マシンにリソースの余力があるか

1台の物理マシンに仮想マシンを詰め込み過ぎると、仮想マシンのパフォーマンスに影響するため、この観点は非

元記事を表示

ConceptNetをローカル環境で実装する

# ConceptNetとは

> ConceptNet aims to give computers access to common-sense knowledge, the kind of information that ordinary people know but usually leave unstated.[公式githubより]

端的に言うと、コンピュータに常識を持たせることを目指した常識データベースです

# 常識が何の役に立つか

考えればきりがないのですが、一例として挙げてみます

## ユーザの発話の正しい意味や文脈をコンピュータが認識する

“`
(サウザンドドレッシングの話をしていて)
女性A:そう、そう、そう。何かね、でも沖縄の人は、何にでもあれかけるから。
女性B:沖縄すごい。じゃあ、最初からバラで売らなくて混ざったのを。
女性C:隠れた味だね、沖縄の方は。
女性A:混ざったやつは売らない。売ってはないかなー。
レストランとかも作りがいがないとかいうの聞いたことがある。
何にでもかけちゃうから。微妙な味を出してもー。

引用元「名大会話コーパス」

元記事を表示

Python の正規表現マッチングで引数付groupを使うと遅いのか検証する

# 結論

– 正規表現でグループを指定するとちょっと遅くなる。(14%)
– 引数付でgroup(1)とかするとさらにちょっと遅くなる。(22%)
– 遅くならないわけではないけど倍かかるわけでなし別に気にする必要ない。(個人差があります)
– 何行もロジック書くよりは標準ライブラリの関数使ったほうがだいたいにおいてマシ。

# やる気あったんか

どちらかというとQiitaになんか書こうというモチベーションでした。すいやせんした。
Pythonの正規表現でマッチしたあとmatchobj.group(1)とかするとなんか遅い気がしたし、簡単に検証できそうだったのでとりあえず書きますという気持ちです。

# 環境

– Windows 10 Home
– Python 3.6.6
– ipython 6.4.0

# 実験用コード

“`python
import re

seq = “hoge123fugafoobar456zoo”
pat1 = re.compile(r”\S+\d{3}\S+\d{3}\S+”)
pat2 = re.compile(r”\S+(\d{3})\S+

元記事を表示

Python 3チップス

Python3を触っていてエラーが発生したり調べたことのひたすらメモです。短いもの主体なのでチップスの名前を使っています。

# arrayはリスト内包記法でリストに変換される
“`py
from array import array
array1 = array(“i”, [0, 1, 2, 3, 4])
print(array1) #array(‘i’, [0, 1, 2, 3, 4])
print([i for i in array1]) #[0, 1, 2, 3, 4]
print(type([i for i in array1])) #
“`

# ctypesにはmemmoveが実装されている
“`py
from ctypes import *
ctypes.memmove #
“`
RtlCopyMemoryやRtlMoveMemoryは不要です。

#arrayは文字列をサポート終了予定

#ctypes.get_unicode_bufferメソッドの戻り値に対応する型はcty

元記事を表示

MacにPython, Jupyter Notebook, BeautifulSoup4, Seleniumを用いたスクレイピング環境を構築

新しいMacBook Proを買ったので、個人的備忘録としてPython, BeautifulSoup4関連の環境構築で参考にした記事をメモします。
きっとこの通りにやれば他のMacでもひとまず問題なくいけるはず、、

## MacBookについて
OS     macOS Catalina 10.5.13
プロセッサ 2.6 GHz 6コアIntel Core i7
メモリ   16 GB 2667 MHz DDR4

## 目指す環境
– Python3でBeautifulSoup4を使ってスクレイピングできる
– Pythonのバージョン管理をできるようにしておく
– JavaScriptで動くサイトも見れるよう、SeleniumとChrome Driverが使える

## Homebrewのインストール
まっさらなPCなので、、
[MacにHomebrewを導入する方法](https://qiita.com/balius_1064/items/ac7dff5ef10eaf69996f)

##Python, virtualenvのインストール
Virtualenvも含め、[ma

元記事を表示

Django REST FrameworkのPermission周りの日本語解説がないので書いてみた

#なぜ書こうと思ったか

Djangoが好きでプライベートで色々と触っているのですが、QiitaにDjango周りの記事はそれなりにあってもDjango REST Framework(以下DRF)周りの記事が少ない・・・(この記事を書いている段階で159件)
とても強力なフレームワークであり、かつフロントエンドとサーバーサイドを分割して開発するのが一般的になってきている現状で、DRFはとても魅力的な選択肢の一つであると思います。
一方で、日本語の記事や技術書が少なく、英語のドキュメントを読むことが必須になると英語ができない方からするととっつきにくい印象を与えてしまうのではないかと思います。
とりわけ初心者からすると日本語ですら理解できないような内容を英語で書かれてもなぁ・・となりがちだと思うので書きました。

#DRFのPermission
アクセス制御に関する領域です。

>Authentication or identification by itself is not usually sufficient to gain access to information or co

元記事を表示

Python リストから順番を維持したまま重複を取り除く方法。

**Python3.7以降から使える方法です。**

Python3.7からは**辞書の順番が維持**されるらしい。
##fromkeys()
以下のようにして辞書が生成できる。

入力 `print(dict.fromkeys([“キー1”, “キー2”, “キー3”], “値”))`
出力 `{“キー1”: “値”, “キー2”: “値”, “キー3”: “値”}`

第二引数を指定しなければ値がNoneとなる。
print(dict.fromkeys(l))
{3: None, 2: None, 1: None, 5: None, 4: None}“`

##list()
辞書を引数に渡すとkeyからリストを作る。

**Keyは重複しない**
##本題
入力

“`
l = [3, 3, 2, 1, 5, 1, 4, 2, 3]
print(dict.fromkeys(l))
print(list(dict.fromkeys(l)))
“`
出力

“`
{3: None, 2: None, 1: None, 5: None, 4: None}`

[3, 2

元記事を表示

Windowsで通知を出す神パッケージ「zroya」を見つけた話

# Windowsで通知したい
監視アプリやトレイアプリで通知をしたいとき、丁度いいパッケージを見つけられませんでした
一応、[WinAPI](http://blog.sbfm.jp/archives/137)とか[Powershell](https://quzee.hatenablog.com/entry/2019/01/14/014959)とか使えば出来るんですが、[^1]

– Python3で
– Windowsで
– Cpython・Powershellを使わずに
– Pythonのパッケージを使って
– 数行で
– トースト通知を出す

という条件だと中々ヒットしないんです…

# そんな貴方にzroya!
悩むこと数ヶ月、ついに[zroya](https://malja.github.io/zroya/)というパッケージを見つけました
[WinToast](https://mohabouje.github.io/WinToast/)というC++ライブラリを使ってるみたいです
~~まぁ結局Cpython使ってるようですが、使いやすいならOKです~~

# インストール
pi

元記事を表示

Pythonのturtleでマウスクリックしたところに亀を移動させる

#Pythonのturtleでマウスクリックしたところに亀を移動させる

### 実行イメージ
スクリーンショット 2020-04-15 4.23.00.png

### サンプルプログラム
“`python
import turtle

kame = turtle.Turtle(“turtle”)

def moveKame(x, y):
kame.goto(x, y)

kame.screen.onclick(moveKame)

turtle.done()

“`

### 解説
“`python
# turtleモジュールを読み込む
import turtle
“`

“`python
# kameという名前の変数にturtleモジュールの中の亀(Turtle)を生成して格納する
kame

元記事を表示

heroku + Python で Vtuber Twitter bot 作る

# 目的
 次の機能を持つTwitter botを作ります。
 (たぶん)無料で運用できるはず。

– YouTube
– チャンネル登録者数のキリ番突破通知