- 1. ~学ぶことへの喜びを取り戻すまでの道程~
- 1.1. 緩い自己紹介
- 1.2. ~1月~きっかけはExcelのマクロでした
- 1.2.1. Twitter API 検索で大量データを収集(CSV)
- 1.2.2. DynamodbにPython:floatを入れる場合
- 1.2.3. プログラミング初心者がnews情報収集botを作成した話
- 1.2.4. Pythonビルトインの様々な文字列操作
- 1.2.5. 【高等学校学習指導要領 情報Ⅰ】教員研修用教材:データの形式と可視化(python)
- 1.2.6. matplotlibのTimes New Romanがボールド体になる問題
- 1.2.7. matplotlibでTimes New Romanが使えないとき (Ubuntu)
- 1.2.8. 【Python】lambda式ってどう使うんだろ??【殴り書き】【初投稿】
- 1.2.9. Spotify APIを使ったヒット予測1.過去データの日付ランキング作成
- 1.2.10. 【Python初心者】classの使い方とは?5stepsで理解しよう!(メソッドとインスタンス)
- 1.2.11. RaspberryPiのカメラでリアルタイムでゴニョゴニョするためのコード
- 1.2.12. Python3: CouchDB のデータを削除 (Delete)
- 1.2.13. Python3: CouchDB のデータを更新 (Update)
- 1.2.14. Python3: CouchDB のデータを読む (Read)
【macOS】Pythonのversionを切り替える方法【pyenv】
# はじめに
※本記事はPython初心者向けに記載した記事です。
分かりにくい箇所や誤りはご指摘いただければ幸いですm(__)mpythonのversionを2系から3系に切り替えるために以下の記事を参考にしたのですが、
つまずいてしまったので同じような事象が発生している方向けに参考になればと思い、記載します。
#### 参考サイト
[それでもPythonのversionを切り替えたい](https://qiita.com/bootsnin/items/5735f667a83beaca078b)# .bash_profile を編集しても python の version が2系のまま。。
上記参考サイトの通り、.bash_profile を編集し、いざターミナルで以下のコマンドを実行しても version は2系のままでした。“`ruby:qiita.rb
python –version
“`# python のパスを確認
そこで次のコマンドを実行すると“`ruby:qiita.rb
which python
“`[/usr/local/bi
pythonの@propertyについて
`@property`について語るには、基礎から語らなきゃいけないんです。
学校の例を見てみましょう。学生というクラスがあるとしましょう。
通常、クラスの属性を決めるときに、属性をそのまま公開しても良いのですが、勝手に変更することが可能となり、あまりおすすめできません。というのも、点数は通常0 ~ 100の範囲内に位置するので、デタラメに9999にもできてしまいます。明らかにおかしいですね。
“` python3
s = Student() #オブジェクト作成
s.score = 9999
s.score = 1111
# 勝手に書き換えられる
“`ということで、`set_score()`や`get_score()`で成績を取得することにしました。(普通の流れです)
“` python
class Student:
def get_score():
return self.self._scoredef set_score(self, value):
if not isinstance(value, int):
raise Val
【総集編】7月ふりかえり
# はじめに
今月のふりかえりです。
月1で振り返り
今後は何を勉強するかを決めます。——————————–
# 7月 1週目2020/07/01 [【統計学】ふつうのエンジニアが統計学の勉強を始めてみた](https://qiita.com/ymd65536/items/dc0eff97e8fe86ac2c1d)
2020/07/05 [【統計学】ふつうのエンジニアが統計学の勉強を始めてみた- part2](https://qiita.com/ymd65536/items/9dc84ccef5138f64d129)
——————————–
# 7月 2週目2020/07/08 [【キニナル話】jexcel使ってみた.xlsx](https://qiita.com/ymd65536/items/a05888bf563bf60ad161)
2020/07/12 [JavaとJavaScript 間違えられやすい問題](https://qiita.com/ymd65536/i
【Python】2つの文章の類似性を固有名詞の傾向から計算。記事のレコメンデーションに利用。
# 概要
– 2つの文章の類似性を計算できれば、レコメンデーション機能に利用できます。
– 予め、文章の類似性を計算してDBに記録しておき、現在表示している文章と、内容が似ている文章をレコメンデーションできます。# 今回説明する方法
– 文章中の固有名詞とその出現回数を取得します。
– 取得した文章中の固有名詞の傾向が2つの文章で、どの程度似ているか計算します。
– 類似性の計算にはピアソン相関係数を利用します。
– プログラミング言語はPython3です。# 個別の処理の説明
## 文章中の固有名詞とその出現回数を抽出#### MeCabを利用して、文章中の固有名詞を取得します。
#### MeCabの辞書にmecab-ipadic-neologdを設定します。
– この辞書は新語に強い辞書で、これを設定することで固有名詞をかなり正確に取得できるようになります。
– https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md#### ストップワード(多くの文章に現れるワード)
JupyterHub でカスタムアクションを定義する(hook 機能)
JupyterHub の`hook`機能を使うと、ログイン時にユーザ毎のディレクトリを自動作成できたりする。
設定ファイル(`jupyterhub_config.py`)に関数として定義する。
hook には以下の種類がある。– `c.JupyterHub.user_redirect_hook`
– `c.Spawner.auth_state_hook`
– `c.Spawner.post_stop_hook`
– `c.Spawner.pre_spawn_hook`
– `c.Authenticator.post_auth_hook`※それぞれの詳細な説明は割愛(未調査)
公式リポジトリにサンプルスクリプトが紹介されている。
[jupyterhub/examples/bootstrap-script at master · jupyterhub/jupyterhub](https://github.com/jupyterhub/jupyterhub/tree/master/examples/bootstrap-script)
例えばユーザフォルダを自動作成するhook
旧帝国大学理系学部中退がプログラミングを始めて半年でPaizaのスキルチェックでAランクとるまでのぽえむ
~学ぶことへの喜びを取り戻すまでの道程~
>意外と自分と同様のタイプの学歴コンプレックスに苦しんでる方が沢山いるかも, と思ったのでPaizaスキルチェックでAランクをとれた喜びを共有, そしてこれからの自分の学習の指針を改めて明示的にしたいと思ったので, 思い切って記事を書いてみようかと思いました.
緩い自己紹介
>高校の頃は数学が得意でした. 某旧帝国大学の理学部に入りました. そのあと研究というものへ一切の興味を失い, 勿論プログラムなんかも全く学習せずに文字通り何も学ばずに4年生で中退しました. 以後とあるきっかけでソフトのテスターの職に就くまで完全にサイエンスとは縁のない生活を送っていました.そんな自分がプログラミングを通してサイエンスを生きる喜びと感じ, 一つの実力の指針であるPaizaスキルチェックAランクを”Hello World”から半年で身につけれたお話です.
~1月~きっかけはExcelのマクロでした
>テスター業務はExcelでの単純作業が非常に多かったです. 当時の自分にとっては意外だったのですが, 想
Twitter API 検索で大量データを収集(CSV)
#開発環境
Python3.7.3
Twitter API#参考にしたページ
https://qiita.com/kngsym2018/items/2524d21455aac111cdee
http://westplain.sakuraweb.com/translate/twitter/Documentation/REST-APIs/Public-API/The-Search-API.cgi
https://syncer.jp/Web/API/Twitter/REST_API/
https://qiita.com/mida12251141/items/97bce06e4167db8ed3d5
https://qiita.com/tomozo6/items/d7fac0f942f3c4c66daf#事前にやっておくこと
Twitter APIの登録申請。ここでは割愛。
私は申請から許可まで4日ほどかかりました。
「参考にしたページ」の一番目で丁寧な解説がされてます。#やりたいこと
1レコード1ツイートなテーブル形式の状態でcsvファイルに保存する。
各データには改行はない
DynamodbにPython:floatを入れる場合
# 結論
値として挿入する場合はサポートされていないため、一旦文字列>Decimalにしてから挿入すること。“`python
item={
“val”:Decimal(str(float_val))
}
“`参照:
https://stackoverflow.com/questions/49633504/python-and-dynamodb-decimal-inexact#comment93902878_52450303
プログラミング初心者がnews情報収集botを作成した話
こんにちは、初めての投稿です。
私は非IT企業に勤めるサラリーマンです。
プログラミング歴は約1年です。
勤めている会社の社訓として、情報を積極的に収集しようというようなものがあります。
情報、かつては、新聞等を読んで入手するのが通常だったとは思うのですが、今は新聞を読んでいる人も減っていると思いますし、ネットでニュースを見られる時代です。便利になったと思います。しかしながら「積極的に」ニュースサイトにアクセスして情報を得るというのは、日々通常業務を行っている自分にとっては難しいことでした。業界に関連する情報等、いくつかチェックしたいサイトはあるのですが、面倒くさがりな性分なのか、わざわざサイトに飛ぶのが面倒くさいです。そこで、「積極的に」という社訓に沿っているとは言い難いかもしれないですが、定期的にニュースサイトを巡回し、最新のニュースをメールで送信するbotを作成しました。(そもそも情報が洪水のように流れている時代の中で、「積極的に」とはどういう行為を指すのだろう?)
また、最近拝読した「独学プログラマー」という本でオブジェクト指向プログラミングという手法が紹介されておりましたので
Pythonビルトインの様々な文字列操作
# まえおき
– この記事は執筆中の[やさしくはじめるPythonプログラミング](https://github.com/simon-ritchie/python-novice-book-preview)の本の特定の章の部分抜粋です。
– 入門本なので初心者の方向けです。
– ビルトインの文字列操作関係の章の内容が主になります。
– Qiita記事にマッチしていない箇所(「章」や「ページ」といった単語が使っていたり、改行数が余分だったり、リンクが対応していない等)があるという点はご留意ください。気になる方は↑のリンクの電子書籍版をご利用ください(Githubでダウンロードできます)。
– コメントなどでフィードバックいただいた場合、書籍側にも活用・反映させていただく場合があります。# 文字列の各操作
前章までで基本的なPythonの操作や型・ビルトイン関数などを学んできました。本章では文字列に対して追加の操作について学んでいきます(前章までである程度操作方法について学んできましたが、他にも大切で便利な操作方法などが色々あるのでそちらを学んでいきます)。
数は多いので全ては覚え
【高等学校学習指導要領 情報Ⅰ】教員研修用教材:データの形式と可視化(python)
#はじめに
今回は文部科学省のページで公開されている情報Ⅰの教員研修用教材の「第4章情報通信ネットワークとデータの活用・巻末」内の「データの形式と可視化」について、Rのソースコードの個所を、pythonで実装及び若干の補足考察をしていきたいと思います。#教材
[高等学校情報科「情報Ⅰ」教員研修用教材(本編):文部科学省](https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1416756.htm “高等学校情報科「情報Ⅰ」教員研修用教材(本編):文部科学省”)
[第4章情報通信ネットワークとデータの活用・巻末 (PDF:10284KB)](https://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2019/09/24/1416758_006_1.pdf “第4章情報通信ネットワークとデータの活用・巻末 (PDF:10284KB)”)#環境
– ipython
– [Colaboratory – Google Cola
matplotlibのTimes New Romanがボールド体になる問題
下記のプログラムを追加すると解決します.
“`
import matplotlibdel matplotlib.font_manager.weight_dict[‘roman’]
matplotlib.font_manager._rebuild()
“`
matplotlibでTimes New Romanが使えないとき (Ubuntu)
下記のようなエラーが出る場合.
“`
UserWarning: findfont: Font family [‘Times New Roman’] not found. Falling back to DejaVu Sans.
(prop.get_family(), self.defaultFamily[fontext]))
“`Terminalから以下のコマンドを入力することで解決する.
“`
$ sudo apt install msttcorefonts -qq
$ rm ~/.cache/matplotlib -rf
“``ttf-mscorefonts-installer`はTabで選択したい位置にカーソルを合わせてEnterを押す.
【Python】lambda式ってどう使うんだろ??【殴り書き】【初投稿】
#公開理由
・qiitaに挙げるっていう意識高い系の皆様を見て「自分も簡単なことで良いからアウトプットする習慣を作りたい!」って思った為
・『Pythonチュートリアル』の本を読んでいて、いまいち使い方がイメージ出来なかったので#lambda式とは
・無名関数って呼ばれるやつらしい。
いつもはdef 関数名():みたいな感じでいろいろとコード組んでいかないといけないんですけど、それを省略して関数を定義出来るみたいです。
関数を組むための手間を省略出来ていい感じって事らしい。。。(レベルが高い方はそういう恩恵を感じているようですね。。。私はまだ感じれないですね汗)####●文法
“`
lambda 引数: 返り値
“`####●サンプルコード※変数にlambdaを入れるのはPEP8違反なのであれですがわかりやすいので。
“`python:test.py
a = 100
b = 50abSum = lambda a, b: a + b
abSub = lambda a, b: a – b
abMul = lambda a, b: a * b
abDiv =
Spotify APIを使ったヒット予測1.過去データの日付ランキング作成
![spotify.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661171/fcc2b392-eab3-6680-feb3-37d748c430cd.png)
spotifyのAPIを使ってヒット予測を作ってみました。
今回はまず取り掛かりの第一回目として、
1.過去のランキングデータを取得
2.取得したランキングデータをまとめてグラフ化
をやっていきます。##1.過去のランキングデータを取得
https://spotifycharts.com/regional
から日本の日別トップ200ランキングを取得しました。
過去数日ないとランキングの推移が出せないので、ここでは2020年7月1日〜7月13日のデータを取得しています。取得したファイル一覧がこちら
![A7A8FC26-C4A3-4CB9-A06B-BAB03EC652BA.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661171/399e6e9c-
【Python初心者】classの使い方とは?5stepsで理解しよう!(メソッドとインスタンス)
今回目指すアウトプット
——————![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/616412/37fdd220-eb23-4878-0f2b-b675d44c1a5f.png)
結論
——————
・クラス
・メソッド
・インスタンス
の3つを定義する。“`Python:結論
class クラス名(): #クラス名をつける
def メソッド名(self): #メソッド名をつける
実行したい処理 #実行したい処理
インスタンス名 = クラス名() #インスタンス名をつけるインスタンス名.メソッド名() #呼び出す
“`各論
——————–classの定義(step1)
————–
“`Python:step1
class クラス名(): # <--- これをまず覚える ``` ↓ classの使い方(step2) --
RaspberryPiのカメラでリアルタイムでゴニョゴニョするためのコード
使いたいライブラリに合わせて適宜利用すればOK。
物体検知とかにどうぞ。# PILバージョン
“`python:PILバージョン
import os
from datetime import datetime
from PIL import Image
from picamera import PiCameracamera = PiCamera()
while True:
nowtime = datetime.now()
filename = nowtime.strftime(‘%H%M%S’) + ‘.png’
camera.capture(filename)
with Image.open(filename) as frame:
pass # ここでゴニョゴニョする
os.remove(filename)
“`# cv2バージョン
“`python:cv2バージョン
import os
from datetime import datetime
import cv2cam = cv2.VideoCapt
Python3: CouchDB のデータを削除 (Delete)
“`py:couch_delete.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
# couch_delete.py
#
# Jul/27/2020
# —————————————————————-
import sys
import json
import requests
#
# —————————————————————-
sys.stderr.write(“*** 開始 ***\n”)
#
key_in = sys.argv[1]
print(“%s” % key_in)
#
url_json = ‘http://localhost:5984/nagano’
url_key = url_json + ‘/’ + key_in
#
rr=requests.get(url_key)
#
unit_aa = json.loads(rr.text)
#
if
Python3: CouchDB のデータを更新 (Update)
“`py:couch_update.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
# couch_update.py
#
# Jul/27/2020
#
# —————————————————————-
import sys
import json
import datetime
import requests
#
# —————————————————————-
sys.stderr.write(“*** 開始 ***\n”)
#
key_in = sys.argv[1]
population_in = int(sys.argv[2])
print(“%s\t%d” % (key_in, population_in))
#
url_json = ‘http://localhost:5984/nagano’
url_key = url_json + ‘/’ +
Python3: CouchDB のデータを読む (Read)
“`py:couch_read.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
# couch_read.py
#
# Jul/27/2020
#
# —————————————————————-
import json
import sys
import requests
#
# —————————————————————-
def dict_display_proc(dict_aa):
for key in sorted(dict_aa.keys()):
if ((key != ‘_id’) and (key != ‘_rev’)):
unit = dict_aa[key]
name = unit[‘name’]
str_out = str(key) +”\t”+ str(name)
str_out += “\t” + str(