- 1. python bs4 requestによる抽出の備忘録
- 2. [QoreSDK]人工知能はハーモニカの種類を聞き分けられるのか?
- 3. LogisticRegressionのsolverはデフォルト値がlbfgsに変わったので注意
- 4. PythonからLINEBotにメッセージを送りたい
- 5. Pythonの代入時の挙動を確認する
- 6. 僕のarcpy(Python)
- 7. 僕のstr(Pytnon)
- 8. 僕のConfigParser(Python)
- 9. 僕のsys(Python)
- 10. 僕のDjangoアプリ立ち上げ
- 11. 二項分布、ポアソン分布、正規分布、超幾何分布の関係と近似誤差
- 12. GoogleColaboratoryを使うときのいつもの処理メモ
- 13. 【Django】Truncate Table(テーブルのデータを全て削除)を行う
- 14. SQLAlchemyのDB別接続方法まとめ
- 15. 日本語の文章をいい感じに文区切りするライブラリを作った
- 16. JupyterじゃなくてJupyterLabを進めるN個の理由
- 17. Remove: Unknown Plugins してますか?
- 18. 時系列予測のための移動統計量
- 19. soracom_exporterを作った話(SORACOM AirをPrometheusで監視してみた)
- 20. pythonを使った年齢計算
python bs4 requestによる抽出の備忘録
pythonでwebスクライビング時の備忘録です。
“`python
from bs4 import BeautifulSoup
import reuest
import os
“””プロキシ対応”””
os.environ[“https_proxy”] = “http://xxx.xx.xx.xx:8080”
url = “https://www.python.org/”
html = requests.get(url)
soup = BeautifulSoup(html.text, “lxml”)
print(soup)
print(“———————————————-“)
# python.org内の文字列のみを取得したい場合
name = soup.find_all(“div”, class_=”introduction”)
# name = soup.find_all(“div”, {“class”: “introduction”}と記載しても良い。
name = name[0].text
print(name)
[QoreSDK]人工知能はハーモニカの種類を聞き分けられるのか?
# はじめに
みなさんこんばんは。
Qiitaユーザーの中で最もハーモニカの所有数の多い男(推定)ことkon2です。![harmonicastrim.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203101/c55b455c-465b-a0c4-8689-0c12308f69ab.jpeg)
日々いろんなハーモニカを吹いていて、思うんですよね。
実際、メーカーや機種ごとに音、変わんなくない? って。そう思って、同じリフを8つのハーモニカで録音してみました。
8本のハーモニカで同じブルースのリフを演奏したやつのまとめ。
Have you heard ‘Blues Harmonica Comparison’ by konkon on LogisticRegressionのsolverはデフォルト値がlbfgsに変わったので注意## はじめに
scikit-learnライブラリの[ロジスティック回帰](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html)(LogisticRegression)は、バージョン0.22において`solver`のデフォルト値が`liblinear`から`lbfgs`に変更されました。
この変更により、同じコードでも過去とは実行結果が異なる、あるいはエラーが出力されることが想定されるのでメモ。
## たとえばこんな事象
L1正規化を行うような、下記のコードでエラーが発生します。
“`python
lr_l1 = LogisticRegression(C=C, penalty=’l1′).fit(X_train, y_train)
“`以下はエラー内容。
“`console
—————————————————————————
VaPythonからLINEBotにメッセージを送りたい
久しぶりにPythonをしたくなり
このページを参考にLINEBotを作っています。私がやったこと
1、ターミナルにpip install requests
を送りました。
2,PythonでLINEにメッセージを送る準備
”””
token = “私のを入力”
payload = {“massage”: “Hello World”}
url = “http://notify-api.line.me/api/notify”
headers = {“Authorizatino”: “Bearer” + token}
res = requests.post(url, data=payload, headers=headers)
print(res)
”””これをすると
Process finished with exit code 0
このように表示されて、ラインにはメッセージは来ませんでした。
(この文章は正常に送信したっていう意味らしい)3.コマンドに
python test.py
を入力して
Pythonの代入時の挙動を確認する
# まとめ
* どのような型であれ、代入すると代入したidに置き換わる、つまり全て参照渡しである
* リストで内部要素に直接代入した場合は、要素のidのみ置き換わり、リストのidは変わらずリストのidを共有している変数は全て影響を受ける
* dictやクラス変数など内部要素へ直接代入できるものは同様の結果になる
* リスト型の代入時に[:]を使うと、参照渡しでなく、アドレスに直接代入することができる# 実験
## int型の代入
“`python
a = 1
b = 2
print(“a:”,a,”b:”,b)
print(“id_a:”, id(a), “id_b:”, id(b))
a = b # aのidはbのidに置き換わる
print(“a:”,a,”b:”,b)
print(“id_a:”, id(a), “id_b:”, id(b))
b = 3 # bのidは3のidに置き換わる, aのidはそのまま
print(“a:”,a,”b:”,b)
print(“id_a:”, id(a), “id_b:”, id(b))
“`
結果“`
a: 1
僕のarcpy(Python)
自分用のまとめ
随時更新
**自分がわかればいいからところどころ用語が間違ってるかも**!見方
“`python
#コマンド
#引数のオプションの説明
“`###モジュール読み込み
“`python
import arcpy
“`##操作
“`python
#shapeファイル等のコピー
arcpy.Copy_management()
#コピーされるファイル
#コピー先のパス
“`
僕のstr(Pytnon)
自分用のまとめ
随時更新
**自分がわかればいいからところどころ用語が間違ってるかも**!見方
“`python
#コマンド
#引数のオプションの説明
“`###モジュール読み込み
無し
##頻出操作
“`python
#全て大文字に変換
str.upper()
“`
僕のConfigParser(Python)
自分用のまとめ
随時更新
**自分がわかればいいからところどころ用語が間違ってるかも**!見方
“`python
#コマンド
#引数のオプションの説明
“`###ConfigParserっていつ使うの?
設定ファイル(iniファイル)を扱うとき###モジュール読み込み
“`python
import ConfigParser #Python2
import configparser #Python2
“`##頻出操作
こんなiniファイルがあったとする
“`
[I]
name = taro
age = 40
“`“`python
#iniファイルの読み取り
ini = Configparser.SafeConfigParser()
ini.read()
#引数に読み取るiniファイルのパス#要素の取得(taroの取得を例に)
#パターン1
name = ini.get[‘I’][‘name’]
#パターン2
name = ini.get(‘I’,’name’)“`
僕のsys(Python)
自分用のまとめ
随時更新
**自分がわかればいいからところどころ用語が間違ってるかも**!見方
“`python
#コマンド
#引数のオプションの説明
“`###モジュール読み込み
“`python
import sys
“`##頻出操作
“`python
#プログラム終了
sys.exit()#自作のモジュール等のインストール元パスの設定
sys.path.append()“`
僕のDjangoアプリ立ち上げ
自分用のメモ
随時更新**自分がわかればいいからところどころ用語が間違ってるかも**
##djangoのアプリを作成~テンプレートの読み込み
– 条件
– getとpostはビュークラスで管理
– URLは各アプリで管理####1.ANACONDAのトップ画面のEnvironmentsタブのCREATEをクリック
####2.仮想環境の詳細を選択
二項分布、ポアソン分布、正規分布、超幾何分布の関係と近似誤差# 概要
* 各分布の関係性をざっくり紹介
* 分布を計算・可視化するPythonコード作成
* 条件を変えて実行し、近似誤差の大きい場合と小さい場合があることを確認# 参考書籍
[基本統計学](https://www.amazon.co.jp/dp/464116455X)# 各分布の関係をざっくりと
## 超幾何分布と二項分布
超幾何分布では
* 赤青のボールが20個ずつ入った箱から、ボールを10個取り出した時、赤が3個である確率はいくらか?
といった問題を考えます。1回目に赤が出る確率は50%ですが、1回目の影響で残りの赤青の個数が変わるので、2回目は確率が変わります。これは非復元抽出と呼ばれ、各試行が独立ではありません
(参考:[biostatistics – 超幾何分布](https://stats.biopapyrus.jp/probability/hypergeometric-distribution.html))一方、二項分布では
* 赤青のボールが1個ずつ入った箱から、ボールを1個取り出して戻す試行を10回繰り返した時、赤が3回出る確率はいくらか?
といった
GoogleColaboratoryを使うときのいつもの処理メモ
#いつもの使うもの《随時更新》
###Gドライブと接続する
“`
from google.colab import drive
drive.mount(‘/content/drive’)
“`“`
cd drive/My Drive/Colab Notebook/Projects
!ls
“`
【Django】Truncate Table(テーブルのデータを全て削除)を行う
Djangoでモデルを変更する際に、中身のデータを全て削除したいケースがある。
# pythonスクリプトで行う
“`shell
python manage.py shell
“`でshellにログイン後
“`py
from * import models.テーブル
テーブル.objects.all().delete()
“`
# SQL文で行う
“`shell
python manage.py dbshell
“`でdbshellにログインした後、“`TRUNCATE TABLE“`を発行
# 参考
* [How do I drop a table from SQLite3 in DJango? – Stack Overflow](https://stackoverflow.com/questions/2286276/how-do-i-drop-a-table-from-sqlite3-in-django/2286712)
* https://docs.djangoproject.com/en/1.7/intro/tutorial01/#
SQLAlchemyのDB別接続方法まとめ
##SQLAlchemyをもっと便利に使いたい
Pythonを使っているならDB処理に例外なく**SqlAlchemy**を使っていると思います。
しかしSQLAlchemyは独特すぎていったんプロジェクトから離れてしまうと文法を忘れてしまいがちです。今回はそうならないようにするために、いつでもこのページに戻ってすぐにSQLAlchemyに取り掛かれるようなページにしていこうと思っています
##SQLAlchemyのDB別接続方法
[元ネタのURL](https://docs.sqlalchemy.org/en/13/core/engines.html)
基本的な文法は以下です。(PostgreSQLの場合)
“` python
from sqlalchemy import create_engine
engine = create_engine(‘dialect+driver://username:password@host:port/database’)
“`以下が一覧になります。ユーザー名、パスワード、データベース名は仮です
|#|DB名|Database
日本語の文章をいい感じに文区切りするライブラリを作った
# はじめに
昨今、自然言語処理技術の発展はめざましく、様々な分野で応用が進められています。
そんな私も自然言語処理技術やAIを活用した業務をこなすことが多いのですが、その中でとりわけめんどくさい(しかし重要な)作業は、様々な前処理に関するものです。大抵のタスクで実施することになる主な前処理としては、以下のようなものがあります。
* クリーニング
* HTMLタグや記号等、テキスト中のノイズを除去
* 正規化(normalization)
* 全角・半角や大文字・小文字等の統一
* **文区切り(sentence segmentation)**
* 文と文の区切りを検出し分割
* 単語分割(tokenization)
* 文を単語の列に分割
* ストップワードの除去
* 解きたいタスクに不要な単語を除去私は主にPythonを利用しているのですが、これらの中で**日本語の文区切り**については適当なライブラリが無く、毎回似たようなコードを書く羽目になっていました。
きっと同じような悩みを抱えた人は世の中に100人くらいはいるんじゃ無いかと
JupyterじゃなくてJupyterLabを進めるN個の理由
## はじめに
こんにちは、myjlabのmarutakuです。12/15の枠が空いていたので急遽記事を書いています。
今回は、自分がよく使っているJupyterLabというツールについて説明をします。個人的にこのツールは鬼のように使いやすいツールなのでたくさんの人に使ってもらいたいと思っています。## この記事で話すこと
* JpyterLabについて
* Jupyter notebookとの違い
* 導入方法## この記事で話さないこと
* 拡張機能
* 僕があまり使わないから## JupyterLabとは
JupyterLabとは、Jupyter(iPython notebook)をベースにしたインタラクティブな開発環境です。Jupyterでできることはそのままに、さらに使いやすく色々な機能を追加したツールになります。↓ こんな感じ
![こんな感じ](https://i.gyazo.com/204381af02a81d2b502db167fa81b41f.png)
かなりメンテナンスがされていて、
?「Jupyter notebookではできたの
Remove: Unknown Plugins してますか?
この記事は[Maya Advent Calendar 2019](https://qiita.com/advent-calendar/2019/maya)の16日目の記事になります。
突然ですが…
# ちゃんと Remove: Unknown Plugins してますか?
…と思ったのも理由がありまして…
### 不明なプラグインの混入率が高い
仕事の中で自分に回ってくるシーンデータに不明なプラグインが混入している確率が非常に高い…
### 不明なプラグインが混入してると困ること
1. シーンを開くのに時間がかかる
– プラグイン情報はシーンを開いたときに最初に読み込まれる部分です。
ここでMaya環境内に存在しないプラグインを読み込もうとした際にエラーメッセージが表示されます。
このエラーを引き起こすプラグインの数が多ければ多いほどシーンを開くのに時間がかかってしまいます。
2. 不明なプラグインの情報は感染します。
– **継ぎ足しされる秘伝のunknown-plugin**
– 過去のモデルデータを新しいシーン
時系列予測のための移動統計量
# はじめに
CyberAgent20新卒AdventCalendar2019の16日目の記事です.
時系列データを分析する際によく見かける統計的な手法として移動平均というものがあります.
特に株価の推移のトレンドを測る際によく見かけますが,今回はそれを機械学習などの特徴量として使用できるような形にしたいと思います.
どちらかというと実装寄りの記事です.普段はテキストや音の解析がメインなので何か間違いがあったら指摘していただけるとありがたいです.
# 移動統計量とは
移動統計量と言っていますが移動平均や移動分散のことです.
実際に使われている手法としては移動平均がほとんどで移動分散と呼ばれるものは検索してもほとんどヒ
soracom_exporterを作った話(SORACOM AirをPrometheusで監視してみた)
# TL; DR
– SORACOM APIを叩いて、Airのsim session statusをPrometheusで監視できるようにした
– API叩いた結果をnode_exporterのtext collector経由でPrometheusから取得できるよう実装
– SORACOMの話というかむしろPrometheusのexporterをnode exporter text collectorで作った話だな…# はじめに
SORACOM AirのsimでIoTなsomethingを運用していると当然その監視も必要になる。
すると実装次第だが、IoTなsomething内部のOSやapplicationからhealth情報的なのを送るであろう。
しかしNWが通じてないとそれらの情報は送れず、NW生きてるの?疎通とれるの?という観点での監視も必要になる。で、問題あったときに原因のレイヤー分けとしてAir simのsessionではどうか?がわかると嬉しい。とても嬉しい。
例えばIoT内application疎通はできないがsession statusがOnlineだと
pythonを使った年齢計算
“`python
import datetimedef age_now():
now_time = str(datetime.date.today())
split_time = now_time.split(“-“)
print(“生年月日を入力してください”)
b_year = int(input(“年:”))
b_month = int(input(“月:”))
b_day = int(input(“日:”))age = int(((int(split_time[0]) * 10000 + int(split_time[1]) * 100 + int(split_time[2])) – (b_year * 10000 + b_month * 100 + b_day)) / 10000)
print(“現在の年齢は{}才です”.format(age))age_now()
“`簡単にこんな感じです。int関数使いすぎててよくわからなくなってますね。気が向いたら減らしてみます。
***追記***
`