Python関連のことを調べてみた2020年09月29日

Python関連のことを調べてみた2020年09月29日

スクレイピング2 スクレイピングのやり方

[Aidemy](https:// aidemy.net) 2020/9/29
#はじめに
 こんにちは、んがょぺです!バリバリの文系ですが、AIの可能性に興味を持ったのがきっかけで、AI特化型スクール「Aidemy」に通い、勉強しています。ここで得られた知識を皆さんと共有したいと思い、Qiitaでまとめています。以前のまとめ記事も多くの方に読んでいただけてとても嬉しいです。ありがとうございます!
 今回は、スクレイピングの2つめの投稿になります。どうぞよろしくお願いします。

*本記事は「Aidemy」での学習内容を「自分の言葉で」まとめたものになります。表現の間違いや勘違いを含む可能性があります。ご了承ください。

今回学ぶこと
・スクレイピングの方法(前準備であるクローリングはスクレイピング1を参照)
・複数ページをスクレイピングする

#スクレイピングする
##スクレイピングの方法
・(復習)スクレイピングとは、Webページを取得し、そこから必要なデータを抜き出すことである。
・スクレイピングの方法は「正規表現(reモジュール)」を使う、または「サードパーティ製のライブラリを使

元記事を表示

KubernetesとDockerを使用してPython APIを開発およびデプロイする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/f8a0672f-869f-6a6e-7533-37a1d662334e.png)

#はじめに
Dockerは最も人気のあるコンテナー化テクノロジーの1つです。使いやすく、開発者にとって使いやすいツールであり、スムーズかつ簡単に使用できることもあり、他の同様のテクノロジーよりも人気があります。 2013年3月の最初のオープンソースリリース以来、Dockerは開発者や運用エンジニアから注目を集め、Docker Inc.によると、Dockerユーザーは1,050億を超えるコンテナーをダウンロードし、Docker Hubに580万のコンテナーをドッキングしました。プロジェクトのGithubには32,000以上のスターがあります。

現在、Dockerはそれほど主流になりました。 10万を超えるサードパーティプロジェクトがこのテクノロジ-
を使用しており、コンテナ化のスキルを持つ開発者の需要が高まっているのも事実です。

この記事は、

元記事を表示

PILで背景透過。(putalphaがNoneType Objectを返す時の対処法)【Pillow】

![fashion-wear-of-a-man-in-black-long-sleeve-3678375.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/9f852f50-e7b1-0206-46f4-2b70bfc45b50.jpeg)![4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/4b74ebc9-f0f8-274c-633f-ecd8352277ad.jpeg)![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/a618b4d0-c0a7-0201-d33a-cc1d270d2210.png)
たとえば、上記のような画像にマスク画像を適用して背景を透過したいとします。
以下でOK。

“`python

from PIL import Image

img.putalpha(mask

元記事を表示

Django シフト表 シフトデータ作成機能完成

結果的には、機能を作ってから気づいたのですがシフトって本人が全部まず入力した後に、シフト決定者が調整するってことで対応ができないのかなって思いました。
また、そこらへんは、ユーザに確認して機能変更をする必要がありますね

長々となりましたが、Viewsです

“`python:schedule/views.py
from django.shortcuts import render, redirect, HttpResponseRedirect
from shisetsu.models import *
from accounts.models import *
from .models import *
import calendar
import datetime
from datetime import timedelta
from datetime import datetime as dt
from django.db.models import Sum
from django.contrib.auth.models import User
from django.view

元記事を表示

Python3.6.10でDeepFloorPlanを動かしてみた

# はじめに
ICCV2019で発表された「Deep Floor Plan Recognition Using a Multi-Task Network with Room-Boundary-Guided Attention」(以下、DeepFloorPlan)をpython3版に書き直して動かしてみました。[[paper](https://openaccess.thecvf.com/content_ICCV_2019/papers/Zeng_Deep_Floor_Plan_Recognition_Using_a_Multi-Task_Network_With_Room-Boundary-Guided_ICCV_2019_paper.pdf), [github](https://github.com/zlzeng/DeepFloorplan), [github(python3版)](https://github.com/c-makitahiroki/DeepFloorplan)]

タスクが具体的でビジネス的なニーズがありそうだなと思って気になってました。
今回の記事では、DeepFl

元記事を表示

測定データの厄介なバックグラウンドを関数定義なしでいい感じに分離できるすごいアルゴリズム「BEADS」

最近いろんな種類の測定データに触れる機会が増えてきて「バックグラウンドの評価を試料や測定手法に依存せずにちゃちゃっと一括処理でやりたいな…」という気持ちが高まってきました。いろいろと探してみたところ、「ちょっと工夫するだけでピークを避けるような範囲指定をしないでもうまいことバックグラウンドのフィッティングができるよ」という[論文](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.64.4698&rep=rep1&type=pdf)をみつけました。ちょうどピークが動くせいで範囲指定が厄介な連続測定データがあったので「範囲指定いらないの最高じゃん」と思い早速採用して効果を実感したのですが、「もしかしたらバックグラウンド評価の技術って進歩してるのでは?」とふと思いもう少し深く掘ってみたところ[BEADS](http://www.laurent-duval.eu/siva-beads-baseline-background-removal-filtering-sparsity.html)というアルゴリズムを発見しました。(ハイパ

元記事を表示

Pythonの非同期プログラミングを完全理解

# 非同期プログラミング
 非同期プログラミングについて、聞いたことがあるというような人が多いと思います。例えば、フロントエンドで使われているJavaScriptはシングルスレッド言語で、メインスレッドをブロッキングさせないため、様々な関数は非同期処理になるよう実装されています。Node.jsもその性質を受け継ぎ、I/Oバウンドタスクに長けています。しかし、Pythonになると、並列・並行処理に対応しているため、ほとんどの人は自身のプロジェクトで非同期プログラミングを利用した経験がないでしょう。もちろん、[Tornado](https://www.tornadoweb.org/en/stable/)、[Twisted](https://twistedmatrix.com/trac/)や[Gevent](http://www.gevent.org/)などの非同期フレームワークが有名で使ったことのある人は少なくないですが、変わったエラーにぶつかった時はなかなか解決できないでしょう。

 近年のPyConの傾向から見ると、非同期プログラミングはPythonエコシステムの次のトレンドになると予

元記事を表示

【密度の可視化】plotlyで動的な可視化をする【python3,hist,kde,join,contour,heat map】

python==3.8
plotly==4.10.0

#ヒストグラム

積み上げるか、透かすかはbarmodeで操作する

##透かし

“`python
import plotly.graph_objects as go
df = px.data.tips()

fig = px.histogram(df, x=”total_bill”, y=”tip”, color=”sex”, marginal=”rug”, hover_data=df.columns)
fig.update_layout(barmode=’overlay’)
fig.update_traces(opacity=0.75)
fig.show()
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/f19c9534-43e2-bb92-4af9-82f61caf2ab6.png)

##積み上げ

“`python
import plotly.graph_o

元記事を表示

再帰で階乗に挑戦してみる

こんばんは。
初心者なりに挑んでみたので
皆様の参考になれば幸いです。

例えばですが、3!(=3 * 2 * 1) を実現するにはどうすれば良いでしょうか。

“`
print(3*2*1)
“`
出来ました(笑)!
じゃあ、def を使って、こんな風に書いてみたらどうでしょうか。

“`test.py
def test(n:int=3):
if n>1:
return n * test(n-1)
else:
return 1

print(test())
“`

取り急ぎ初期値 3 でやってみました。
取りあえず、一個一個代入してみてみましょう。
まずは n == 3 の時です。

“`test.py
# n == 3 のとき
def test(n:int=3):
#n == 3 なので、if の中に入ります
if n>1:
#return 3 * test(3-1)
return n * test(n-1)
else:
return 1

print(

元記事を表示

【メモ】BeautifulSoup4の使い方(1) htmlを表示

jupyternotebook上でBeautifulSoupを用いてスクレイピングする。

In[1]BeautifulSoupをimportする

“`:In[1]
from bs4 import BeautifulSoup
“`

In[2]スクレイピングしたい記事のhtmlを変数kijiに格納する

“`:In[2]
kiji = “””
    
   Qiitaに投稿してみた
    
    
   

  アウトプットのためQiitaに挑戦。
   

        

  頑張って記事を書きます。
   

    
   “””
“`
格納したいhtmlは”””と”””の間に書く。

In[3]先ほど変数

元記事を表示

Qiita Job 求人を分析してみた件

## 目次

– 背景
– データ取得
– データを見てみた
– 所感と今後の予定

## 背景

転職活動をしている中、「転職お祝い金30万円プレゼントキャンペーン」という言葉に引っかかり、Qiita Jobsに登録しましたが、いざ使ってみたら、機能が少し足りないと思いました。

勤務地の絞り込みできなかったり、ページ数を分からなかったりなどがありました。

幸いのことで、求人の一覧のところで必要が情報が大体揃えているし、全ページ数が20ほどしかないし(手作業で取得)、Pythonで取得することにしました。

## データの取得

大体の流れはこうです。

– Pythonで求人一覧のURLで内容をHTMLとして取得します
– 取得したHTMLで、beautiful soupを作り、タグなどを解析して必要な部分を切り取ります。
– 切り取った部分をJSONにして、Firebase cloud firestore に格納。
– 一方で、引継ぎの解析のためにローカルでcsvファイルとして保存。

合わせて294件の求人を取得しました。(これはおそらく全部?)

## データを見

元記事を表示

【超初歩】AnacondaにGDALをインストールしてみた

#GDALとは?

Metashape(旧Photoscan)で作成したモザイク画像(Geotiff画像)を読み込んで、Pythonで画像処理したいと思ったので、
**GDAL**というラスターとベクターをいじれるライブラリのインストールに挑戦しました。
インストールに苦労して今日一日かかってしまったので、備忘録も兼ねて書き残しておきます。

参考:https://gdal.org/
「GDAL documentation」

#インストールエラーが発生

「GDAL Python インストール」などで調べると、anaconda promptで以下のコマンドを打つことでインストールできるようです。

参考:https://anaconda.org/conda-forge/gdal
「conda-forge/packages/gdal」

“`
conda install -c conda-forge gdal
“`

しかし、このコマンドを実行すると、Solving Environment…で止まってしまうエラーが発生します。

参考:https://teratail.com/

元記事を表示

Djangoを使ったWEBアプリケーションの開発【モデル定義編】

[テンプレート追加編の続き](https://qiita.com/tesla1017/items/8fbc72f0312f9d445c2c)

モデルの定義

現在作成しているpostsという機能は、ブログなどの記事を入力するための機能をイメージしているため、タイトル・記事・日時・画像を格納するデータベースが必要になります。
これをmodels.pyに追記していきます。

“`models.py
from django.db import models

#Postというクラスとして定義していきます。
class Post(models.Model):

#タイトルについての定義、文字列型のためCharFieldを使用
#max_lengthで文字数制限をすることが可能
title = models.CharField(max_length=100)

#日時についての定義、日付データのためDateTimeFieldを使用
published = models.DateTimeField()

#画像データについての定義、画像デー

元記事を表示

Pythonに疲れたのでnehanでデータ分析してみた(コロナ関連、あのワードは今?)

## ご挨拶
こんにちは、マンボウです。
昨今盛り上がっているPythonによるデータ分析ですが、使いこなすのは大変です。
ついついPythonと格闘することが目的になり、本来達成したいビジネス改善はいずこへ。。。
そういった悩みを解決するためのGUIツール「nehan」を使って、データを分析する例をご紹介したいと思います。

## Twitterのデータから、特定単語の出現数を振り返る
コロナウイルスが社会問題になってから半年以上が経過しました。
ここ約2ヶ月のtweetデータから、あの単語の出現数を追ってみます。

## データ
nehanはTwitterのデータをダイレクトに取り込むことができ、今回はその機能を使いました。
ご紹介はまた後日。
2020/7/27から毎日**「コロナ」をtweet本文に含む**3,000tweetを蓄積し、約2ヶ月分のデータを準備。
データの詳細は[こちら](https://sunfish.nehan.io/datasources_v2/3424)から
![スクリーンショット 2020-09-28 19.13.12.png](https://qi

元記事を表示

Machine Learning : Supervised – Support Vector Machine

#目標
サポートベクターマシンを数式で理解して、scikit-learn で試す。

微分積分、線形代数が既習であることを前提としています。

#理論
サポートベクターマシンは、サポートベクトルと呼ばれる識別境界を決める少数のデータを基にしてサポートベクトルと識別境界とのマージンが最大となるように学習を行います。

サポートベクターマシンは線形識別モデルですが、カーネルトリックによる非線形識別問題への拡張性も高いため、優秀な分類モデルとして広く利用されています。

本来は 2値分類モデルですが、多クラス分類や回帰、異常検知にも使用されます。

##サポートベクターマシンによる分類

###サポートベクターマシンの導出
まず、2値の線形分類問題で考えます。ここで、訓練データを $x = (x_1, …, x_n)$、目標値を $t = (t_1, …, t_n)$ ただし、$t \in \\{ -1, 1 \\}$、パラメータを $w$ とすると、識別モデルの出力 $y$ の線形モデルは、

“`math
y(x) = w^T x + b
“`

のように表せます。ここでは

元記事を表示

Functional API で多入力・多出力モデル

# はじめに

Keras の Functional API を使った基本的なモデルの実装と多入力・多出力モデルを実装する方法について紹介します。

## 環境

今回は Tensorflow に統合された Keras を利用しています。

“`shell
tensorflow==2.3.0
“`

# ゴール

– Functional API が使える
– 多入力・多出力モデルを実装できる

# Functional API とは

Sequential モデルより柔軟なモデルを実装できるものになります。
今回は、Sequential モデルでは表現できないモデルの中から多入力・多出力モデルを実装していきます。

## 基本的な使い方

まずは、Functional API の基本的な使い方を説明していきます。
Functional API はモデルを定義する方法なので、学習・評価・予測は Sequential モデルと同じになります。

### 入力層

まずは、`keras.Input`で入力層を定義します。

“`python
inputs = keras.Input(

元記事を表示

Python + Janomeでマルコフ連鎖人工無脳(1)Janome入門

#前書き
Pythonでマルコフ連鎖人工無脳を実装しようと思いました。
さて、形態素解析はなにに投げますかなと調べたところ、
Janomeというのが他のライブラリとの依存関係もなく、
pip一発でさくっとインストールできるそうです。ためしちゃお!

#環境
Python 3.8.5
Janome 0.4.1

#使い方
“`python
from janome.tokenizer import Tokenizer

t = Tokenizer()

s = “草わかば色鉛筆の赤き粉の散るがいとしく寝てけずるなり”

for token in t.tokenize(s):
print(token)
“`
Tokenizerクラスを使います。

“`python
t = Tokenizer()
“`
Tokenizerインスタンスを作って、

“`python
for token in t.tokenize(s):
print(token)
“`
解析したい文章をtokenizeメソッドに渡します。
上のように中身を一つ一つ表示させると、こんな感じです。

元記事を表示

【Python3】画像のリサイズをフォルダー単位で行いたいときに使えるコード

備忘録やOUTPUT的な意味での蓄積(一気に作った系はこれで終わり)

#作成目的
作業用のサイズをすべて変換したいときが定期的に起こったので、作業簡略化のために作成

#作成環境
・windows10
・Anaconda3
・python3.7
・Jupyter Notebook

#ドキュメント
①resizeしたいフォルダー名を入力(png_folderの一つ上のディレクトリ)
②folderがなければcurrent_folder内に、resize_folder を作成する
③幅と高さを指定し、画像をリサイズ(入力をしなかった場合Errorになる)
④すでに同じフォルダー名がある場合、誤操作を防ぐためにErrorになる

#ライブラリの読み込み

“`python:All Necessary Libraries.py
import numpy as np
import os
import pathlib
from pathlib import Path
from glob import glob
from PIL import Image
from tqdm

元記事を表示

形態素解析と単語のベクトル化してみた

#Word2vecを使ってみる

* word2vecを使うためにgensimのインストールをする。
* 文字処理をするためにjanomeをインストールする。

“`
pip install gensim
pip install janome
“`

* word2vecで青空文庫を読み込むためのコード

“`py
# 必要なライブラリのインポート

from janome.tokenizer import Tokenizer
from gensim.models import word2vec
import re

# txtファイルをopenした後読む
binarydata = open(“kazeno_matasaburo.txt”).read()
“`

“`py
# ちなみにprintして一つ一つ確かめたやつ
binarydata = open(“kazeno_matasaburo.txt”)
print(type(binarydata))
“`

実行結果  ``

“`py
binaryda

元記事を表示

schemdrawで回路図を

[公式](https://schemdraw.readthedocs.io/en/latest/index.html)には回路例はあるものの

コメントが少なくて読みづらい感じ。

ネットには落ちているけど、トランジスタとかダイオードとか使ってないし微妙。

と思って、じゃあ作ろうと思いました。

お急ぎの方向けの全部ね。細部の説明は近日公開。

“`python:Buck_Switcher.py
import schemdraw
import schemdraw.elements as elm

d = schemdraw.Drawing()

# 電源からスタート
Vin = d.add(elm.BatteryCell(‘up’,reverse=True,label = ‘$V_{in}$’))
d.add(elm.Line(‘u’,l=1.5*d.unit)) #線
d.add(elm.Line(‘r’,l=1*d.unit))
d.add(elm.Line(‘d’,l=0.5*d.unit))

# FETまわり
Q1 = d.add(elm.JFetN(‘right’ ,

元記事を表示

OTHERカテゴリの最新記事