- 0.0.1. lockとRlock
- 0.0.2. 遺伝的アルゴリズム(GA)とそのライブラリ(vcopt)で巡回セールスマン問題を解く
- 0.0.3. 坂道グループの公式HPからメンバー画像をスクレイピングする
- 0.0.4. python正規表現で文字列が時刻かどうかを判定する
- 0.0.5. 世にも奇妙で恐ろしいPythonのエラーの話
- 0.0.6. FlaskでAddress already in use errorとなった日
- 0.0.7. Twitter API の Search API で”next_results”パラメータが使えない!?その原因と対処法
- 0.0.8. プログラミング言語の学ぶ順番について(初心者から中級者へ)後編
- 0.0.9. pythonとopencvの環境構築
- 0.0.10. AutoGluonをGoogle Colab GPU環境で実行する
- 0.0.11. Error: 500 (Internal Server Error) Jupyter lab
- 0.0.12. Pythonでのチームアプリ開発に参画するための学習履歴~Djangoチュートリアル4~
- 1. {{ question.question_text }}
- 1.0.1. Diagrams on Dockerでシステム構成図を書いてみた
- 1.0.2. 【Actoder】初中級者が解くべき過去問精選 100 問を解いてみた【Part1/22】
- 1.0.3. Pythonスクリプトをパラメトリックに計算させるためのドライバースクリプト
- 1.0.4. Jupyter上で複数のカーネルを選択可能にする方法
- 1.0.5. 言語処理100本ノック 2020【第一章 解答】
- 1.0.6. Pythonで毎日AtCoder #38
- 1.0.7. CloudFormationでECSへSSMから機密情報の受け渡しをする
- 1.0.8. matplotlibの基本操作をJupyter Labで書いてみた
lockとRlock
“`py
import logging
import threading
import timelogging.basicConfig(level=logging.DEBUG, format=’%(threadName)s: %(message)s’)
def worker1(d, lock):
logging.debug(‘start’)
with lock:
i = d[‘x’]
time.sleep(5)
d[‘x’] = i + 1
logging.debug(d)
with lock:
d[‘x’] = i + 1
logging.debug(‘end’)def worker2(d, lock):
logging.debug(‘start’)
lock.acquire()
i = d[‘x’]
d[‘x’] = i + 1
logging.debug(d)
lock.release()
遺伝的アルゴリズム(GA)とそのライブラリ(vcopt)で巡回セールスマン問題を解く
## :anchor: この記事の目的
本記事では、数理最適化問題でよく出てくる巡回セールスマン問題の簡単な例題について、遺伝的アルゴリズム(Genetic Algorithm, GA)を応用したソルバーであるPythonライブラリの「vcopt」を使用し、解を探ってみます。また、vcoptについて「巡回セールスマン問題に代表される順序の大域最適化」の解き方及び使い方を見てみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/915313dc-be6b-64a6-c219-2960b074e49f.png)
## :anchor: vcoptって何?
ビネット&クラリティ合同会社( https://vigne-cla.com/ )により開発された、遺伝的アルゴリズム(Genetic Algorithm, GA)を使用した組合せ最適化ソルバーです。Python言語で書かれています。同ソルバーには様々な機能が実装されていますが、今回は順序(並び替え)の大域最適化を求め
坂道グループの公式HPからメンバー画像をスクレイピングする
## 目標
このように、`メンバー名.jpg`の名前を付けて画像ファイル(画像のパス)を保存すること。
※今回は保存先を[cloudinary](https://cloudinary.com/)にしています。実行する際は何かしらのストレージや、ローカルに保存先を変更して下さい。![image](https://user-images.githubusercontent.com/52794486/79519194-1ee11400-808e-11ea-95f3-e4acaff57e4b.png)
## 最終的なコード
それぞれの公式HPのhtmlが異なっていたので、微妙にコードが異なります。
### 乃木坂
“`python:get_ng_images.py
from bs4 import BeautifulSoup
import urllib
import cloudinary
import cloudinary.uploaderimport os
cloudinary.config(
cloud_name = os.environ.get(“clou
python正規表現で文字列が時刻かどうかを判定する
正規表現で0:00から23:59までを時刻として判定したい。
時、分ともに一桁の時と二桁の時に対応したい。以下だと、29:59も時刻と判定してしまう。
“` python
re.match(r'([0-2]?[0-9]):([0-5]?[0-9])’, ’29:59′)
“`以下であれば期待通りの動作だった。
“` python
re.match(r'([0-1]?[0-9]|2[0-3]):([0-5]?[0-9])’, ’23:59′)
re.match(r'([0-1]?[0-9]|2[0-3]):([0-5]?[0-9])’, ’24:00′)
“`もし他に良い方法があれば是非コメント下さい!
世にも奇妙で恐ろしいPythonのエラーの話
注)importの仕様には注意しましょうねという話で、初級者向けの内容です。
# Pythonでとある機能のテストをしていた時のこと。
昨日は動いていた次のサンプルコードが突然エラーを出すようになりました。
環境はpyenv+pipenv+python3.7+Google Cloud SDK
(Google Firestoreの書き込みを行うコードです)“`Python:insert.py
from google.cloud import firestoredb = firestore.Client()
db.collection(u’users’).document().set({
u’first’: u’oda’,
u’last’: u’nobunaga’,
u’born’: 1534
})
“`エラーの内容は次のとおり
“`shell
>> pipenv run insert
Loading .env environment variables…
Traceback (most recent call last):
File
FlaskでAddress already in use errorとなった日
##対処
以下コマンドを入力ps -fA | grep python出てきたプロセスをkillする
### SUCCESS!!
###参考
Twitter API の Search API で”next_results”パラメータが使えない!?その原因と対処法
Twitter API の [Search API](https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets) を用いてツイート収集をしていた際にハマりました!
意外なところに落とし穴が・・・# Twitter の Search API について
今回は、ツイートを取得する Search API を利用しました。
Search API の仕様について簡単にまとめます。Search APIには3種類のAPIがあります。
– Standard Search API (無料)
– Premium Search API (有料)
– Enterprise Search API (有料)今回は、無料で使えるStandard Search APIを利用します。
### Standard Search API の特徴
– 無料で利用可能
– リクエスト回数に制限あり
– user auth(OAuth1)で認証する場合 180リクエスト/15分
– app
プログラミング言語の学ぶ順番について(初心者から中級者へ)後編
#追記
記事に書き忘れていましたが、複数の言語を中途半端にやるより、一つの言語を極めれる方がいいと思います。
ただその言語が自分に合わない(僕の場合はCが生理的にきつかった) 場合は他の言語へ移った方がいいとも思うのです。#目次
大前提と学ぶ意義と大まかな学ぶ流れ
最初の一歩:Javascript
飛躍の一歩:Python
最初のコンパイル言語:C#
最後の難関、最強言語:C言語http://www.minekawada.com/program-lang-order.html
pythonとopencvの環境構築
今回は私がおすすめするpythonとopencvの環境を説明・解説していきます。
ぜひ皆さんも参考にしてみてください。
#動機
環境構築してみたら、意外と大変だったのでここに書いておきます。
#参考にしたサイト
[https://prog-8.com/docs/python-env](https://prog-8.com/docs/python-env)
[https://www.sejuku.net/blog/54272](https://www.sejuku.net/blog/54272)
#開発環境
MacOS Catalina
#スタート
###brewをインストール
[Homebrew公式ホームページ](https://brew.sh/index_ja)
ここに書いてあるスクリプトをターミナルに貼り付けて実行するとHomebrewがインストールされます。
###pyenvをインストール
“`python
brew install pyenv
“`
上を実行するとpyenvがインストールされます。
###pythonをインストール
pythonをインストールする前にやってお
AutoGluonをGoogle Colab GPU環境で実行する
## AutoGluonとは
mxnet製のAuto MLライブラリ.
https://autogluon.mxnet.io/## Setup on Linux
公式ページより“`sh
# Here we assume CUDA 10.0 is installed. You should change the number
# according to your own CUDA version (e.g. mxnet-cu101 for CUDA 10.1).
pip install –upgrade mxnet-cu100
pip install autogluon
“`## Google Colabで実行
“`sh
pip install –upgrade mxnet-cu100
pip install autogluon
from autogluon import TabularPrediction as task
“`
> ImportError Traceback (most recent
Error: 500 (Internal Server Error) Jupyter lab
# ?!?!?!?!?
“`python:エラー文
Error communicating with server extension. Consult the documentation for how to ensure that it is enabled.Reason given:
Error: 500 (Internal Server Error)
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431977/b69c48b3-5d17-c377-f724-3b8d7984bc73.png)# あらまし
前回の記事
https://qiita.com/lindq_yu/items/23fedb6aae0d930f03d4大学からMacを借りお気に入りの開発環境である `jupyterlab`を導入していました。
`jupyterlab`については、https://qiita.com/kirikei/items/a1639954ce5ccaf7ac3c
Pythonでのチームアプリ開発に参画するための学習履歴~Djangoチュートリアル4~
# はじめに
[前回](https://qiita.com/shitikakei/items/753ba603b5bca272c69c) から引き続きDjangoチュートリアルを進めていきます。
今回はDjangoを使う上で重要なポイントであるクラスベースビューについてです。# フォームについて
“`html
{{ question.question_text }}
{% if error_message %}
{{ error_message }}
{% endif %}
Diagrams on Dockerでシステム構成図を書いてみた
「[Diagramsを使ってPythonでシステム構成図を描く | Developers.IO](https://dev.classmethod.jp/articles/diagrams-introduction/)」の記事をみて良さそうだなーと思ったのだけどPython環境がなかったのでDockerで試してみた話。
# Dockerイメージを準備する
[公式ドキュメント](https://diagrams.mingrammer.com/docs/getting-started/installation)に「`pip`で`diagrams`をインストールせよ、`Graphviz`もインストールしておけ」と書かれているのでそれにしたがってDockerfileを作成。“`dockerfile:Dockerfile
FROM python:latest
WORKDIR /app
RUN apt update && \
apt install -y python3-pygraphviz && \
pip install diagrams
“`ビルドする。あとで実行
【Actoder】初中級者が解くべき過去問精選 100 問を解いてみた【Part1/22】
**目指せ水色コーダー!!!!!!**
ということで、
[レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】](
https://qiita.com/e869120/items/eb50fdaece12be418faa#2-3-%E5%88%86%E9%87%8E%E5%88%A5%E5%88%9D%E4%B8%AD%E7%B4%9A%E8%80%85%E3%81%8C%E8%A7%A3%E3%81%8F%E3%81%B9%E3%81%8D%E9%81%8E%E5%8E%BB%E5%95%8F%E7%B2%BE%E9%81%B8-100-%E5%95%8F)(@e869120さん)
>
AtCoder で水色コーダー、つまりレーティング 1200 を少ない問題数で達成するために、茶色コーダー・緑コーダーにとって適切な教育的良問を 100 問集めました。こちらの記事の`初中級者が解くべき過去問精選 100 問`
を**Python**で解いていきます!
@e869120さんに感謝!!!!!!#記念すべき「Part1」〜普通の全列挙
Pythonスクリプトをパラメトリックに計算させるためのドライバースクリプト
# これはなに
自作のTimerライブラリーの誤差を測定するために作成した、ドライバースクリプトです。
ある`python`スクリプトを、異なる条件で計算させるためのドライバーツールです。どのように表現してよいかわかりませんでしたが、`WebDriver`をイメージして、ドライバーと表現しました。
`Python`スクリプトをドライブするための、ドライバースクリプトという感じです。# ドライバースクリプト
“`py:python
from timer import Timerdef main():
seconds = 5
interval_set = [0.01,0.025,0.05,0.1,0.15,0.2,0.25,0.5,0.75,1,2,2.5,3,3.5,4,4.5]num = len(interval_set) + 1
for case in range(1,num):
interval = interval_set[case-1]
timer = Timer(seconds, interv
Jupyter上で複数のカーネルを選択可能にする方法
悪戦苦闘したのでメモがわりに。
# 概要
Jupyter上で複数のカーネルを使用したい。
例えば
– python2.7と3.6
– Anacondaの仮想環境1と仮想環境2
のような状況を想定しています。![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212428/37e30e6e-b4a7-5855-efe2-b753249fd5f9.gif)
このような感じでカーネルを変更できるようになります。
# 手順
– Anacondaで仮想環境を構築
– IPythonのカーネルに追加という方法で問題を解決します。
ここではpython2.7と3.6のカーネルを追加する例を用いて、順番に説明していきます。なお、Jupyterについては既にAnacondaをインストールした際に導入されているものとします。
## 仮想環境を作る
まずそれぞれの仮想環境を作成、その際に“`ipykernel“`もインストールします。– 仮想環境1
“`python2.7
conda
言語処理100本ノック 2020【第一章 解答】
言語処理100本ノックの2020バージョンが公開されましたね。
https://nlp100.github.io/ja/
この記事では、参照しやすいように淡々と解答を貼っていきます。
解説は別の記事に書いています。https://kakedashi-engineer.appspot.com/2020/04/15/nlp100-00-09/
# 00. 文字列の逆順
“`python
s = ‘stressed’
print (s[::-1])
“`# 01. 「パタトクカシーー」
“`python
s = ‘パタトクカシーー’
print (s[::2])
“`# 02. 「パトカー」+「タクシー」=「パタトクカシーー」
“`python
s1 = ‘パトカー’
s2 = ‘タクシー’
print (”.join([a+b for a,b in zip(s1,s2)]))
“`# 03. 円周率
“`python
s = “Now I need a drink, alcoholic of course, after the heavy lec
Pythonで毎日AtCoder #38
### はじめに
[前回](https://qiita.com/taxfree_python/items/1d13ec564581a927a87f)
今日のよるかつの問題を解きます。### A問題
[問題](https://atcoder.jp/contests/abc089/tasks/abc089_b)**考えたこと**
setに入れてlenするだけ“`python
n = int(input())
s = set(input().split())if len(s) == 4:
print(‘Four’)
else:
print(‘Three’)
“`### B問題
[問題](https://atcoder.jp/contests/abc075/tasks/abc075_b)**考えたこと**
ちょっと前にやりました。全てのマスに隣接している全てのマスを調べる“`python
h, w = map(int,input().split())
s = [input() for _ in range(h)]g = [[]*w for
CloudFormationでECSへSSMから機密情報の受け渡しをする
# Infomation Source
ちょっと前のリリースですが1年経ってないので一応どういうアップデートか書いておきます[CloudFormationリリース一覧 2019/6/13 リリースの機能](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/ReleaseHistory.html)
> AWS::ECS::TaskDefinition
ContainerDefinition プロパティタイプでは、次のプロパティを使用できます。
– Secrets プロパティを使用して、コンテナに渡すシークレットを指定します。
Tags プロパティを使用して、メタデータを分類して整理しやすくするために、タスク定義に適用します。# What’s new?
ECSのタスク定義で、機密情報をSecrets Manager secretやSSM Parameter Storeから取得する方法のアップデート
## Before
JSONやWebコンソールからのみ設定可能だった
## After
matplotlibの基本操作をJupyter Labで書いてみた
## この記事はかめ(@usdatascientist)さんのブログ(https://datawokagaku.com/python_for_ds_summary/) に書かれているmatplotlibの基本操作を実際にJupyter Labを用いてコーディングしてみた、という記事です。
## matplotlibの基本操作まとめ
## 第20回
“`python
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
“`“`python
x = np.linspace(-3, 3, 10)
y = np.exp(x)
print(x)
print(y)
“`[-3. -2.33333333 -1.66666667 -1. -0.33333333 0.33333333
1. 1.66666667 2.33333333 3. ]
[ 0.04978707 0.09697197