- 1. Series 要素の追加・削除
- 2. 定期的に生成されるファイルがきちんと生成されているかをチェックして、生成されていない場合はメールを送信するという仕組みを作ってみる
- 3. 言語処理100本ノック 2020(Rev2) を初心者が解いてみる
- 4. バッチ処理環境の構築(汎用機からの離脱)
- 5. LeetCode “42. Trapping Rain Water”が再帰関数で解けなかった話
- 6. 【SikuliX】スマホゲームの自動化(ウィンドウサイズ・位置固定)
- 7. [Atcoder] ABC213(C問題)の整理
- 8. 【Django】Django Rest API(認証あり)にリクエストをする
- 9. MITの公開クラス(Introduction to Deep Learning)のlab1-1をやってみた
- 10. PyQt6の基本の使い方からのまとめとPyQt5との違い
- 11. 【ImageJからPythonへ】napariの使い方 (2)
- 12. Chapter01 – §01 Python 3 の準備
- 13. Z3Py 例題 巡回問題
- 14. pyenvでインストールしたpythonをrootユーザー権限(sudo)で使う方法
- 15. AWS Step Functions 調査メモ
- 16. Ubuntu 20.04にPython3.xを複数インストールして切り替える方法(PPA・apt)
- 17. 50代でデータサイエンティストを目指す
- 18. 【誰でも/無料で/簡単に】Google Colaboratoryの使い方
- 19. *執筆途中【Python】アルゴリズム実装で多用する記法
- 20. vscを使って,anacondaで作った環境でデバッグする
Series 要素の追加・削除
#要素の追加
Seriesに要素を追加する時、追加する要素もSeries型である必要がある。
追加したい要素をSeries型に変換後、追加先に**append(データ配列, index=インデックス配列 )**で渡す事が可能。“`python
import pandas as pdfruits = [“apple”, “orange”, “banana”, “straberry”, “kiwifruit”]
data = [10, 5, 1, 2, 3]#Series型の作成
series = pd.Series(data, index = fruits)
print(series)#データ値が12,インデックスがpineappleのSeries型に変換し、appendで追加
series = series.append(pd.Series([12], index = [“pineapple”]))print(series)
“`###出力結果
![image.png](https://qiita-image-store.s3.ap-northeast
定期的に生成されるファイルがきちんと生成されているかをチェックして、生成されていない場合はメールを送信するという仕組みを作ってみる
# はじめに
最近、小さなサービスを作りすぎていて、気が付いていたら停止しているなんてことが時々あり、中には数時間、数日放置してしまったとかいうことがあって、少し困っている。
ということで、これらのファイルの更新日をチェックして、1時間以上ファイルが更新されていなかったら通知する仕組みを作ってみる。
# 条件
– 通知のメールはGMailを使用
– 生成されるファイルは[年月日].[拡張子]という形式
– スクリプトはホームディレクトリ直下に作成# スクリプト作成
以下の通り作成。
GMailのアカウントとパスワード、メール送信先は各自のものを使用。“`py:check.py
#!/usr/bin/env python3import requests, os, smtplib, ssl
from glob import glob
from datetime import datetime, timedelta
from email.mime.text import MIMEText# メール送信関数
def send_info(name, subject,
言語処理100本ノック 2020(Rev2) を初心者が解いてみる
#はじめに
言語処理100本ノックを解いて,日記の代わりとして自分のモチベーションのために本記事を書く.
プログラミングの経験は多少あるが,初心者に毛が生えたようなレベルであるため,練習のために挑戦する.
100本ノックの解答例は既出であるため,もっと効率的で美しいコードが見たいのであれば[こちらを参照]()してほしい.
本記事は簡単な100本ノックの紹介と,解きなおした解答を載せた記事のURLを[下記](https://qiita.com/hoka-sp/private/ea02d076bb98847f1b24#%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86100%E6%9C%AC%E3%83%8E%E3%83%83%E3%82%AFnlp100%E3%82%92%E8%A7%A3%E3%81%8F)に載せている.
本記事は問題に取り組むたびに更新するスタイルをとる.##言語処理100本ノックについて
[言語処理100本ノック(NLP100)](https://nlp100.github.io/ja/ ‘言語処理100本ノック’)とは,実用的でワクワク
バッチ処理環境の構築(汎用機からの離脱)
# はじめに
前回作成したコード変換プログラムを使用して,汎用機(COBOL環境)及びWindows(COBOL環境)から新システム基盤へ環境を移し,新しいバッチ処理環境を構築します。そのためのテスト環境として,以下のような環境を機能要件として検討します。* MySQLサーバを立ち上げる
* Python実行環境を立ち上げる
* 各種ファイルを移行する
* telnetサーバを立ち上げる
* telnet接続で処理実行,結果表示(文字表示)が正しく行える# 環境
MySQLが依存関係のチェックをしてくれるので,以下の順番でインストールしておくと,後から遡ってインストールする手間が省けます。* Windows 2012 R2
* Microsoft Visual Studio 2015
* .Net Framework 3.5
* Python 3.6
* MySQL Installer 8.0.26(以下の機能が選択でインストールできます)
* MySQL Community Server 8.0.26
* MySQL Shell 8.0.26
* MySQL
LeetCode “42. Trapping Rain Water”が再帰関数で解けなかった話
LeetCode “42. Trapping Rain Water”に挑戦したものの、Timelimit Exceededで解けませんでした。
#問題
こちらから挑戦できます。
https://leetcode.com/problems/trapping-rain-water/>
>n個の非負整数が与えられています。それらの非負整数は、標高の地図を表しています。(各非負整数が表す)バーの幅を1とします。この標高地図は、降雨の後にどれだけの水をためられるでしょうか。計算してください。
>#方針
数字の並び順に意味があるので、「とりあえずソートしておく」はこの問題では使えません。
与えられたn個の非負整数から、二次元の配列として地図を描きます。
それぞれのバーの各高さについて、右側に探索を進めていきます。探索の結果、別のバーにぶつかった場合には、その間の成分1つにつき1つ、水量を加算します。
探索には再帰関数を用います。#提出したコード
“`py
class Solution:
def __init__(self):
# self.res:
【SikuliX】スマホゲームの自動化(ウィンドウサイズ・位置固定)
#はじめに
[前回](https://qiita.com/kazu_kr/items/5865541a3ad05ce810aa)の記事では、スマホゲームを自動化するためのサンプルコードを記載しました。
今回はSikuliXを使用していて発生する問題の解決策を記載していきます。#発生する問題
SikuliXでは画面上の画像を認識してスクリプトにより操作を自動化します。
しかし、指定した画像サイズが画面上に表示されている画像サイズと違う場合、うまく画像認識されずスクリプトが正しく動作しない場合があります。例えば、BlueStacksなどのエミュレータではウィンドウサイズを自由に変えることが可能です。
ウィンドウサイズ変更してしまい元のサイズに戻せなくなり、検索画像の取り直ししなければならない状況が発生することがあります。この事象を解決するため、対象のウィンドウサイズを固定にする方法を検討しました。
#サンプルコード
“`setwindow.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-import ctypes
[Atcoder] ABC213(C問題)の整理
### 概要
* AtCoder Beginner Contest 213 C問題に関して、備忘録を兼ねてコードを整理します。
* 問題は下記のリンクです。https://atcoder.jp/contests/abc213/tasks/abc213_c
* 環境 : Python 3.8
### 解法
何の数字も書いていない行・列は取り除かれるため、結果的に$\\{A_i\\}$, $\\{B_i\\}$それぞれの要素を、数字が小さい方から順に(最も小さい要素を1として)順位付けすればよいと考えることができます。ただし同じ値の要素は、操作の結果も当然同じ行・列に移動するため同じ順位をつけなければならず、かつ同じ順位が続いた(同じ値の要素が複数あった)場合でも順位は飛ばさない点に注意が必要です。### 解答例
“`python
# 標準入力
H, W, N = map(int,input().split())
A, B = [], []
for i in range(N):
a, b = map(int, input().split())
A.appen
【Django】Django Rest API(認証あり)にリクエストをする
## 概要
DjangoのRest APIにPOSTでリクエストを行う際にちょっとハマったので、書いておこうと思います。## 問題
curlで試しにGETリクエストを行ったところ、問題なく動作するが、POSTでリクエストを行ったところcsrf tokenが無効というエラーが出たレスポンスには明確な理由が書いてなかったので、uwsgiのログを見た
“`
WARNING Forbidden (Referer checking failed – no Referer.)
WARNING:django.security.csrf:Forbidden (Referer checking failed – no Referer.)
“`Refererがないと弾かれてしまうっぽい
## 解決方法
リクエストヘッダーに `Referer`を設定することで解消できた。
以下のようにすることでリクエストを行うことが出来た
“`sh
$ curl -X POST -b “csrftoken=hoge; sessionid=hoge;” -H “x-csrftoken: hoge”
MITの公開クラス(Introduction to Deep Learning)のlab1-1をやってみた
#はじめに
こんにちは。
私は最近MITがディープラーニング(以降 DL)の授業をYouTube上で公開しているのを知り、それを使って目下勉強中です。
下記リンクには授業内で使っているスライドと各授業のYouTube動画パスがあります。
[6S.191 Introduction to Deep Learning](http://introtodeeplearning.com/)
もちろん英語ですが、読める方はぜひ挑戦してみてください。結構面白いです!#Lab1-1
ディープラーニングを実際に実装しているソースコードが公開されているので、それの解説をしていきます(要は備忘録です)
[ソースコード](https://github.com/aamini/introtodeeplearning/tree/master/lab1) ⇦ 今回はpart1です!
今回の内容はTensorFlowの基本的な機能の説明です
1. tesnorflowの機能の説明
2. パーセプトロンの実装
3. 勾配降下法の実装
以上のラインナップです。
ちなみにTensorFlowはなぜTensorFlowと呼ば
PyQt6の基本の使い方からのまとめとPyQt5との違い
最近PyQt6を使い始めたので、色々試してここで基本を始めとして使い方をまとめておきたいと思います。
ここではPyQtの基本的な使い方を紹介します。書いたのはPyQt6のコードですが、全部の機能はPyQt5/PySide2でもほとんど同じように通用します。PyQt6とPyQt5のコードの書き方の違うところについても指摘します。
私は元々以前からPyQt4/PySideとPyQt5/PySide2を使ったことがあります。(以前PyQt4/PySideで[mmdpaimaya](https://qiita.com/phyblas/items/53161a1d83ec3d81f649)というMayaのGUIを作ったこともあります)
現在PyQt6になってもやはり書き方の違いは少ないようなので、大した問題はありません。
ここで表示する画像は全部macで試した結果となります。windowsやlinuxを使っても結果は大体同じですが、大きく違う場合もあります。
#はじめに
##インストール
pyqt6はpythonのほとんどのモジュールと同じようにpipで簡単にインストールできま
【ImageJからPythonへ】napariの使い方 (2)
# はじめに
本記事はシリーズになっています。他の記事はこちらから。
##### 前の記事
– [【ImageJからPythonへ】napariの使い方 (1)](https://qiita.com/Hanjin_Liu/items/fcdd9dbbc9fa4fd7df18#comment-5f32ab632b97abf18435)
前回は`napari`の基本的な操作を解説しました。そこから一段階レベルアップして、今回の記事では
1. [viewerから様々なオブジェクトにアクセスする](#1-viewerから様々なオブジェクトにアクセスする)
2. [カスタムキーバインドで効率的に解析する](#2-カスタムキーバインドで効率的に解析する)という2点についてまとめます。1.は少し退屈ですが、知っているほど今後キーバインドやウィジェットを自作するときに、より柔軟で使いやすい機能を追加できるようになります。少なくとも2.のキーバインドができるようになれば、一気に画像解析が効率化されます。
# 0. `napari`の起動
前回みたく、`napari`を起動し、`view
Chapter01 – §01 Python 3 の準備
# Python 3 のインストール
PythonにはPython 2 と Python 3 がありますが、Python 2 はこれからはバージョンアップされることはないので、Python 3 で解説していきます。
### Python 3 のオフィシャルサイト
[Python 3 のオフィシャルサイト](https://www.python.org/downloads/)
ここからPythonを無料でダウンロードできます。インストールの仕方は[このサイト](https://techacademy.jp/magazine/15571)を参考にしてください。
# 統合開発環境の用意
おすすめは、Visual Studio CodeまたはPycharmです。
どちらかをインストールしてください。### ・Visual Studio Code(VScode)のインストール
[ここから](https://code.visualstudio.com/download)インストール。### ・Pycharmのインストール
[ここから](https://www.jetbrains
Z3Py 例題 巡回問題
# 問題
以下の都市の集合と各2都市間の移動コストが与えられたとき、全ての都市をちょうど一度ずつ巡り出発地に戻る巡回路のうちで総移動コストが最小のものを求めろ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/118796/85d50690-f45c-aa43-c10b-cb073dad3cca.png)# 回答
“`example_traveling_salesman.py
from z3 import *map = [
[0, 2, 3, 1, 0, 0],
[2, 0, 0, 2, 2, 4],
[3, 0, 0, 2, 2, 3],
[1, 2, 2, 0, 2, 0],
[0, 2, 2, 2, 0, 1],
[0, 4, 3, 0, 1, 0]
]for total_cost in range(24):
t_max = 7
T = [Int(“T%s” % i) for i in range(t_ma
pyenvでインストールしたpythonをrootユーザー権限(sudo)で使う方法
# pythonの環境を確認
“`
$which python
/home/[user]/.pyenv/shims/python
“`
pyenvで管理されているpythonにパスが通っている。“`
$python -V
Python 3.7.7
“`
バージョンは3.7.7# sudoで実行したときの挙動を確認する
“`print_python_version.py
import platform
print(platform.python_version())
“`
pythonのバージョンがプリントされるスクリプト“`bash
$python print_python_version.py
3.7.7
“`
一般ユーザーとして実行する。pyenvのpythonで実行されている。“`bash
$sudo python print_python_version.py
2.7.16
“`
rootユーザーの権限で実行する。pythonのバージョンが3.7.7でない。“`
$sudo which python
/usr/bin/python
AWS Step Functions 調査メモ
## はじめに
AWS Step Functions の調査メモ。深堀りはせず概要を把握することが目標です。
## Step Functions で Lambda 実行
Step FunctionsでCloudWatch logsにログを書き込むLambdaを実行します。
以下はログを書き込むLambda(Python3.8)です。
Lambda実行時に受け取ったJSONデータをログに記録します。
また、return で受け取ったJSONデータを返しています。“`python:test001
import jsondef lambda_handler(event, context):
print(“test desu {0}”.format(event) )
return (event)
“`– 必要なIAMロールは、CluodWatch Logs の以下3つ
– CreateLogGroup
– CreateLogStream
– PutLogEvents作成したStepFunctionsのjsonコードです。
Ubuntu 20.04にPython3.xを複数インストールして切り替える方法(PPA・apt)
# はじめに
本書では、Ubuntu 20.04に、Pythonの環境をインストールする方法をまとめます。
案件によってPythonのバージョンが違うこともあるため、複数のバージョンをインストールして、alternativesで切り替えられるようにします。
また、Pythonインストール後には、venvで、アプリケーション等で使用する環境を作成することとします。
本書では、Python 3.8がもともと入っているため、3.6、3.7、3.9、更に、古いアプリを動かすために2.7もインストールすることを想定します。
インストールした中で、最新の3.9を有効にし、「newest」という環境をvenvで作成する手順をまとめます。# インストール手順
## リポジトリ追加“`bash
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
“`“`txt
For nightly builds, see ppa:deadsnakes/night
50代でデータサイエンティストを目指す
今まで25年ほどデータベースエンジニアとして生きてきたが
技術者として限界を感じた。
なんとかこの業界で生きていきたいので
「データサイエンティスト」を
50代にして目指してみる。
最終的には組織から離れてフリーランスで食っていきたい。やるぞ〜:frowning2:
今日は以下のインプットを実施。
1.「AI・データ分析プロジェクトのすべて」を読み始めた。
AI・データ分析プロジェクトのすべて[ビジネス力×技術力=価値創出] 大城 信晃(監修・著者) https://www.amazon.co.jp/dp/4297117584/ref=cm_sw_r_tw_dp_2A575AG94EACNB0KZ3FC @amazonJPより2.統計検定2級取得へ向けての勉強
3.英語の勉強
以下のアウトプットを実施。
1. COVID-19に関するオープンデータを用いた分析のツイート
【誰でも/無料で/簡単に】Google Colaboratoryの使い方
# 目次
– 1. はじめに
– 2. Google Colaboratoryとは
– 3. 動かしてみよう
– 4. セルの追加
– 5. セルのその他操作
– 5.1 セルの並び替え
– 5.2 セルの削除
– 6. ツールバーの操作(ファイルの保存および出力)
– 7. ツールバーの操作
– 8. さいごに#1. はじめに
機械学習環境の構築で、エラーで動かず…ということはよくあります。
簡単に機械学習環境を用意したい!という方のために
環境構築が不要、ブラウザ上で利用できる[Google Colaboratory](https://colab.research.google.com)を紹介します。#2. Google Colaboratoryとは
Colaboratory(略称: Colab)は、ブラウザから Python を記述、実行できるサービスです。次の特長を備えています。・環境構築が不要
・GPU への無料アクセス
・簡単に共有> 引用: [Colaboratory へようこそ](https://colab.research.goo
*執筆途中【Python】アルゴリズム実装で多用する記法
#はじめに
Pythonでアルゴリズムを実装する際によく使う書き方や他言語であまり見かけない便利だった書き方の備忘録です。
注 ) 執筆途中です。ちょっとずつ増えます。
注 ) Pythonをほぼ趣味で使っております。業務で用いていたりアルゴリズムPythonガチ勢というわけではございません。ご了承を。基本的に標準ライブラリのみを用いております。numpy などは用いません。
面倒だったのでまだスライス関係やリスト内包表記はありません。#演算子
###インクリメント
他言語でよく見る `i++` のようなインクリメント(/デクリメント)記法が存在しない。“`python
i += 1
“`
あくまでこのような記法。###掛け算と累乗
“`python
2 * 3 # print(2 * 3) => 6
“`
アスタリスク1つ `*` で多言語同様、通常の掛け算。“`python
2 ** 3 # print(2 ** 3) =>
vscを使って,anacondaで作った環境でデバッグする
# 困りごと
jupoyter notebookを使ってたけど,デバッガーが使いづらいのでvscのデバッガー使おうと思ったけど,デバッグするときデフォルトのpythonで起動するから困ってた。今回の解決策はワークスペースの中でanacondaから呼び出す環境を変える。
anacondaの環境変数はフォルダ変えてるだけだから,pythonを呼び出すpathを適切なやつにすればいい。
#1 vscでワークスペースを作る
作れ。
ワークスペース一覧のフォルダに保存しとくと便利な気がするけど,もっといいやり方を知りたい。#2 ワークスペースを開いて,anacondaの環境のパスを設定する
ここがどこからすればいいかよくわからなかった。「ファイル」>「ユーザー設定」>「設定」と選ぶ。
「ワークスペース」のタブを選択する。
検索窓に`python.PythonPath`と打ち込む。
下のpythonのところにこのワークスペースで使うAnacondaの環境のパスを教えてあげる。
![vscの説明.jpg](https://qiita-image-store.s3.ap-northeast