Python3関連のことを調べてみた2019年12月20日

Python3関連のことを調べてみた2019年12月20日

アラフォーCOBOL開発者がDjangoでWebアプリを作った話

#はじめに
Djangoを使用して初めてWebアプリを作成しましたのでその経緯や過程を書いてみました。この記事ではあまり開発内容には触れておりませんのでご了承ください。

#作ったもの
Web
[django-starchart.herokuapp.com](https://django-starchart.herokuapp.com/)

Github
[hayatek/star-chart](https://github.com/hayatek/star-chart)
汚いコードですが、公開します。。

#Webアプリの概要
フォームに入力されたGitHubリポジトリのスター数をGitHub APIより取得してグラフで比較することができるアプリです。

Celeryを使ってGithubから毎日1回データを取得して日次のグラフを作成するのと、月次では毎月1日のデータを蓄積したグラフを作成します。

#開発者について
IT業界の経験は10年以上、ずっとメインフレームコンピュータなどのレガシーな環境でCOBOLでの開発をやってきました。タイトルにアラフォーCOBOL開発者と書きましたが、

元記事を表示

Selection Sort

# Pythonで「選択ソート(Selection Sort)」
## はじめに

ここでは[「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」][1]の中で取り上げられている[「AOJ (Aizu Online Judge」)][2]の問題を自分で解いた際に学んだことや、こう考えれば分かりやすいと感じたことなどを自分への整理も兼ねてまとめています。
このテキストはC++で書かれているので、私のようにpythonで勉強をされている初学者の方の参考になれば幸いです。また私自身も初学者ゆえ、至らない点が多々あると思いますので、ご指摘・ご助言頂ければ喜びます。よろしくお願いします。

## 問題詳細

[ALDS 1_2_B: Selection Sort][3]
選択ソートで昇順に並べ替える問題です。
問題詳細は上記リンクをご参考ください
## 考え方
・以下の処理をN-1回繰り返す
  1. 未ソート部分から最小の要素の位置 minj を特定する
  2. minj の位置にある要素と未ソート部分の先頭要素を交換する

## pythonコード
“`python
def

元記事を表示

Movidius Neural Compute Stickの導入記事を清書する

# 自己紹介

こんにちは。北海道の片隅のしがないユーザ企業で社内SEをしているMeguMegu1978です。普段は社内で唯一のエンジニアとして、Djangoを使ってWebシステム作ったり、Docker使ってインフラやったり、はたまたスマホアプリ作ったりしてます。Qiitaでの記事投稿は久しぶりになります。

自分のボスはエンジニアではないのですが、ハードに明るかったり簡単なコーディングは出来る人で、自分と同じガジェット好きなところもあり、出社すると稀に怪しいガジェットが増えていたりします。

今回、アドカレを書くタイミングで [この記事](https://www.rs-online.com/designspark/ai-powered-identification-with-the-pidentifier-jp?&intcmp=JP-WEB-_-Pi-DS2-_-Mar-18-_-Pidentifier)を元にパーツを揃えて、画像認識で~~遊ぼうとしていた~~苦戦していたボスをヘルプした時の知見をまとめたいと思います。(なのでPythonは出てきますが、Python主体の話ではないで

元記事を表示

公開イベントを自動でカレンダーに突っ込むバッチを作ってみた

# はじめに
この記事は[Zeals Advent Calendar 2019](https://qiita.com/advent-calendar/2019/zeals) の20日目の記事です。
はじめまして!普段はZealsのプロダクトの開発PMをしている阿久津です。

本日は先日参加したミニハッカソン[Python mini Hack-a-thon](https://pyhack.connpass.com/event/153437/)で簡単なバッチを作成しましたので、紹介できたらと思います。
自社のプロダクトとは全く関係ないですw

## モチベーション
エンジニアが必要な情報は書籍やネットから得る事がメインかと思いますが、現場のエンジニアの生の知見や声からの発見も多いと思います。私自身、勉強会やハッカソンに行って他のエンジニアと交流することでとても刺激をもらっています。
興味のある分野のイベントには積極的に参加したいな、とという気持ちはあるものの、

– **探すのが面倒くさい**
– **すでにスケジュールがあって参加できない**
– **気がついたら行きたいイベントが終わっ

元記事を表示

Insertion Sort

# Pythonで「挿入ソート(Insertion Sort)」
## はじめに

ここでは[「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」][1]の中で取り上げられている[「AOJ (Aizu Online Judge」)][2]の問題を自分で解いた際に学んだことや、こう考えれば分かりやすいと感じたことなどを自分への整理も兼ねてまとめています。
このテキストはC++で書かれているので、私のようにpythonで勉強をされている初学者の方の参考になれば幸いです。また私自身も初学者ゆえ、至らない点が多々あると思いますので、ご指摘・ご助言頂ければ喜びます。よろしくお願いします。

## 問題詳細

[ALDS 1_1_A: Insertion Sort][3]
挿入ソートで昇順に並べ替える問題です。
問題詳細は上記リンクをご参考ください
## 考え方
・先頭の要素をソート済みとする
・未ソートの部分がなくなるまで、以下の処理を繰り返す
  1. 未ソート部分の先頭から要素を1つ取り出して、vに入れる
  2. ソート済みの部分において、vよりも大きい要素を1つずつ移動する

元記事を表示

Dev Muscle を支える技術

この記事は Brainpad Advent Calender 2019 20日目の記事です。

懸垂とは関係ありませんが夏に自転車乗って、足と腕に日焼けあとがくっきり残ってしまった @ushi_198 です。
今回は 18 日に紹介した Dev Muscle(懸垂をすると掛け声が飛び交う装置)について、
お伝えしたいと思います。

## 紹介と秘話
IT系の企業ならどこにでもある「懸垂マシン」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309546/997a45d9-4ed6-97b2-47b9-2037869d23f4.png)

この懸垂マシンを有効活用して集まる人々。(割と集まる)。

元記事を表示

pyenvを用いたPython3の環境構築 + PythonでHello World

## はじめに
本記事は[Volare Advent Calendar 2019](https://qiita.com/advent-calendar/2019/volare)の17日目の担当分です。
当記事では、Pythonを初めて使う人がPython3でHello Worldすることが出来るまでを取り扱います。

## もくじ
* この記事の対象
* 前提
* 手順
* Homebrewの導入
* pyenv/Pythonの導入
* PythonでHello Worldする

## この記事の対象
macOS
Windowsは対象じゃありません、ごめんなさい。

## 前提
##### Xcodeがmacにインストールされている。
アプリケーション一覧から確認してなかったら、AppStoreからXcodeをインストールをしてください。

##### ターミナルが利用できる
commandキー+spaceキーでSpotlight検索を開いてterminalを起動します。
出てきた黒い画面(白い画面)にコマンドを入力し、環境構築を進めていきます。

## 手順

元記事を表示

Alpine Linux 3.10.3 Python3 NLTKを実行する

# 実行環境

docker-compose 1.23.2
VirtualBox 5.2.20
NLTK 3.4.5

# ディレクトリ構造

“`
/
├docker/
└ Dockerfile
├src/
└ test.py
└docker-compose-yml
“`

## Dcokerfile

“`
FROM python:3.7.5-alpine

# https://www.nltk.org/data.html
# > The downloader will search for an existing nltk_data directory to install NLTK data.
RUN mkdir /usr/share/nltk_data

RUN pip3 install nltk && python3 -m nltk.downloader all
“`

`python3 -m nltk.downloader all` を実行してダウンロードするライブラリを `/usr/share/nltk_data` に保存します。

元記事を表示

Fizz Buzz を解いてみた

## この記事について
[CODEBASE okinawa Advent Calendar 2019](https://qiita.com/advent-calendar/2019/codebase-okinawa) の19日目の記事にあたります。

## 内容
いい感じに**Fizz Buzz問題**をPython3を用いて解いていきます。
とりあえずやってみよう。

## Fizz Buzz問題とは
最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、**3で割り切れる場合は「Fizz」、5で割り切れる場合は「Buzz」、両者で割り切れる場合(すなわち15で割り切れる場合)は「Fizz Buzz」**を数の代わりに発言しなければならない。発言を間違えた者や、ためらった者は脱落となる。
『Fizz Buzz』 [Wikipediaより](https://ja.wikipedia.org/wiki/Fizz_Buzz)

### 整理して考えてみる
– 3 で割り切れる数字(3, 6, …)のときはFizz
– 5 で割り

元記事を表示

Chainerで機械学習【後日PyTorchに移行した記事に更新予定】

# はじめに
Chainerで作った機械学習モデルをPyTorchに書き換える記事を書く予定でしたが、ここ最近忙しくてまだ出来ていません。とりあえずPyTorchに書き換える予定のChainerで書いたfashion mnistを使ったオートエンコーダモデルについて紹介したいと思います。

## Chainer→PyTorchに書き換えるプログラムについて
今回PyTorchに書き換える機械学習モデルは、全結合のオートエンコーダです。
一般的なオートエンコーダ(Autoencoder)は、中間層に「入力のデータ量より少ない次元数」のニューロンを用意したモデルです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154154/b3bd8035-c92b-cfd4-056a-00ad6da00a97.png)

中間層は入力層よりも小さいことから、入力した特徴量より少ない特徴量でも数字を識別することが出来ることが分かります。
例えば、mnistの28×28の784次元の手書き文字データを入

元記事を表示

Python + RequestsでGaroon User APIからユーザーを取得してvCardを作る

###はじめに

・社用のスマートフォンに社員の情報を入れたいが、
 社員情報がまとまったCSVはない。
・弊社、garoon上に他社員の電話番号やメールなどの情報が掲載されている。
・User APIで全社員の情報取得してCard作ったれ
 
という、自分向けのとてもニッチな記事です。(変数名は気にしないで)
一般権限ユーザーでも取得できます。

ちなみに先日投稿した

Python + RequestsでGaroon REST APIから組織に所属するユーザーの取得
https://qiita.com/yamashi6/items/3a6fe96a6a2efb8a52e1
でもユーザー情報の取得は可能ですが、
User APIだとお名前の読み方も含まれているので今回はこちらを使用しました。

###参考にしたところ

cybozu developer network ユーザーエクスポートAPI
https://developer.cybozu.io/hc/ja/articles/202363040

カタカナをひらがなにするコードの詳細を知りたい
https://teratail.

元記事を表示

アイカツカードを読み取れ…!!!

##はじめに
– こちらの記事は[アイカツ! Advent Calendar 2019](https://adventar.org/calendars/4521)の19日目の記事となります。SHINING LINE*をまた繋ぎます。よろしくお願いします。
– 公開が大幅に遅延したことをお詫び申し上げます。
– [前回(15日目)](https://qiita.com/ricotan_aikatsu/items/620fb78e4099847084be)からの続きとなります。まだご覧になられてない方はこちらを先に見るよう推奨します。
– 前日(18日目)の記事はsnofraさんによる[声優歴何年目で「アイカツ!」シリーズの声優になったのかWikipediaをスクレイピングして確かめる](https://qiita.com/snofra/items/f803a8d9149f4c871e6e)です。

##自己紹介と学習している言語

白石莉子と申します。角川ドワンゴ学園N高等学校通学コース代々木キャンパスプログラミングクラスに所属している高校二年生です。高校内では女児向けアニメ同好会を創

元記事を表示

PythonでSelenium動かしてみた

昨年は出来なかったので、今年はやります!
簡単なことしか出来ないけど。。でも、やることに意味があると自分に言い聞かせてます。

# 本題
pythonとSeleniumがやりかったので色々調べた結果、フォームのチェックに使えそうだなと思って試してみました。
以前dockerとSeleniumで試してみましたが、うまく動かなかった苦い記憶もあるけど、せっかくpythonやっているからやってみようで始めました。
必要な物は下記の手順でインストール出来ます。
windowsでしか試していませんが、プラットフォーム関係なく簡単にインストールできると思います。

## インストール手順
### pythonのインストール
https://www.python.org/downloads/
### Seleniumのインストール
コマンドで`pip install Selenium`を実行
### webdriverのインストール
https://chromedriver.chromium.org/downloads

これらを使った結果はこんな感じです。

![search_results.pn

元記事を表示

PythonでCSV,TSVファイルをSQLiteにインポートする方法

# はじめに
![sqlite-183454_640.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550851/ff378a8a-eec7-fc35-5ef5-790b2b515490.png)

PythonでSQLiteのDBにCSVやTSVデータをインポートしたい!
そんな方のための、スクリプト一発でインポートする方法の解説です。

SQLiteとはなにか、どうやってセットアップするのか等は以下の記事を参考にしてください。
[PythonとSQLiteで実現するローカルでお手軽SQL環境作成術](https://qiita.com/mu-tech/items/4cfb22670232b671700d)

# インポート方法
使い方はこの下の「解説」にて。
## スクリプト

“`import_data_to_sqlite.py
import sqlite3
import csv
import os

#######↓ここのパラメータを変える↓#######
dbname = ”
targe

元記事を表示

PythonとSQLiteで実現するローカルでお手軽SQL環境作成術

# はじめに
– ローカルにあるCSV(or TSV)ファイル、キー列でJOINしたり重複確認とかしたいなぁ…
– でも自由気ままに使えるDBなんてないし…
– そこまででかいデータでもないんだから、お手軽な方法ないかしら…

このようなことでお悩みのあなたへ、SQLiteというDBを使って、ローカルで簡単にDBを立ててデータをインポートしSQLを発行できる方法をご案内します。

**※テキストファイルをインポートする方法については以下の記事にてご紹介!**
[PythonでCSV,TSVファイルをSQLiteにインポートする方法](https://qiita.com/mu-tech/items/4deacbd844cda61fa9e6)

# SQLiteってなに?
![sqlite-183454_640.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550851/ff378a8a-eec7-fc35-5ef5-790b2b515490.png)

– インストールも簡単で軽量なDBMS

元記事を表示

DockerでUbuntu18.04+Pythonの機械学習用の環境を1時間で用意するチャレンジをしてみた

# はじめに
この記事は[とりあえずなんでも Advent Calendar 2019](https://adventar.org/calendars/4820)の21日目の記事です。

##とある日に思った
Windows環境にPythonとpyTorchを入れて適当に機械学習を回していたのですが、突然
「あー、自由にいじれるLinuxがほしい。でもVMはなんかかっこ悪いし、重たいしやだ(偏見)」
「DockerでUbuntu入れてみるとDockerの勉強になったりするのでは?」
「なんかモダンな環境構築っぽい(知識少なすぎて他の構築方法VMくらいしか知らない)」
「1時間あるし、構築チャレンジするか!!」
と、完全に思いつきだけで構築チャレンジをしてみました。
なので、Win10にDockerを使ってUbuntu環境を作る、です。
その時のメモを公開します。

##自分のスペック
・VM構築経験なし(なのに偏見持ち)
・Linux初心者(実は初めてのLinux環境構築)
・Docker初心者(1回触ったくらい)

という初心者丸出しのスペックなので、相当躓きました。
躓いた箇所を全

元記事を表示

Google SpreadSheetから設定値を読み取るgssetting

[aratana Advent Calendar 2019](https://qiita.com/advent-calendar/2019/aratana)の20日目です。
![aratana](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150455/e79ba51f-0163-246b-ad7b-998f8f442d72.png)

最近、設定ファイルにサイト情報を書いて、チェックしにいくというスクリプトを動作させているのですが、チェック対象サイトが増えるたびに、設定ファイルを自分で書き換えるという作業が発生しているので、改善したいなと思ってきました。

現状だいたい下記のような流れです。

“`
マネージャーががんばる -> サイトオープン -> サイトオープンしたよ連絡
 -> シートにサイト情報を記入
 -> 私に連絡が来る -> 私がサーバに入って、設定ファイルに反映
“`

私の作業は数分ですが、めんどうだなーって思ってきました。
スプレッドシートに書いてあるサイト情報をマスタにして、スクリプ

元記事を表示

Euler tour

# Euler tour
木の隣接する頂点をrootから辿っていき、全ての頂点を通る経路を求める。
葉以外の頂点は2回以上通ることとなる。

“`python
from collections import defaultdict, deque, Counter

def euler_tour(G, root=0):
n = len(G)
euler = []
dq = deque([root])
dq2 = deque()
visited = [0] * n
while dq:
u = dq.pop()
euler += [u]
if visited[u]:
continue
for v in G[u]:
if visited[v]:
dq += [v]
# [親頂点、子頂点、子頂点、。。。]と入れていく.その後連結
else:

元記事を表示

初めて自然言語処理をword2vecでしてみました

今回は、[word2vec](http://taku910.github.io/mecab/)を使用して自然言語処理を行います。

自然言語や形態素解析やword2vecなどについては、詳しく説明してくださっている方がいらっしゃったのでそちらを参考にしてください。
**[自然言語処理(NLP)ってなんだろう?](https://qiita.com/MahoTakara/items/b3d719ed1a3665730826)**

**形態素解析**は、前処理の一部みたいです。本によるとなんらかの処理をする前に、プログラムが処理しやすいように**処理対象のデータを整えること**を**前処理**というみたいで、ほかにも**タグや記号を除去する(クリーニング)、半角と全角を揃える(正規化)などがあるようです。**

こちらの書籍を見ながら今回は、実行しています。
# 参考にした本

**[パソコンで楽しむ自分で動かす人工知能](https://www.amazon.co.jp/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%81%A7%E6%A5%BD%E3%

元記事を表示

macOS Catalina python 情況

### クリンインストールした、Catalinaには、どんな pythonが入っているか調べた。

環境
macOS Catalina 10.15.2
MacBook Pro (Retina, 15-inch, Late 2013)
CPU Corei7 2.3GHz
Memory 16 GB
Xcord 11.3 & コマンドラインツール
Homebrew 2.2.1

サブのマシンで、テストとか実験サーバー用に使っています。
初期化して開発環境は、 Dockerと、java程度しか入れていません。
メインで使っているマシンは、upgradeインストールで開発環境は結構グチャグチャになっています。
shellはzshです

クリーンな状態でPythonは何が入っているのか調べました。pythonタブで見ると以下でした。

“`zsh

% python
python python-config python2 python2.7 python2.7-config python3 py

元記事を表示

OTHERカテゴリの最新記事