Python3関連のことを調べてみた2020年03月02日

Python3関連のことを調べてみた2020年03月02日

【LINE bot】おいら、だじゃレンジャー!その2

#はじめに

以前の作成した、[だじゃレンジャーLINE bot](https://qiita.com/Hexans/items/06b9abdcfb4a838a18f7)の更新。

#問題点

1. 小学生には難解な漢字が多く読めない。
2. 与えられたお題(キーワード)でだじゃれを返せない場合、botからのレスポンスがなく、利用者が不安に。

#目的

1. 漢字にフリガナをふる。
2. だじゃれを返せない場合は、返せない旨を伝える。

#コード

## 1. 漢字にフリガナをふる。

[こちらの記事](https://qiita.com/kt-tsutsumi/items/599f287f15b8e4cb84f3)を参考にした。
手順としては、
1. Mecabで形態素解析
2. 漢字であればふりがなをふる。ふりがなは形態素解析の結果を用いる。
3. ふりがなは括弧書き()で、送り仮名はふりがなとは別に()の外に表示。

“`python:furigana.py
import sys
import MeCab
import re

def henkan(text) :

元記事を表示

[HackerRank] Alphabet Rangoli と 再帰呼び出し

# はじめに
[[HackerRank] Alphabet Rangoli](https://www.hackerrank.com/challenges/alphabet-rangoli/problem)
について再帰呼び出しを使用して解いたので記事にしたものです.
以下にネタバレがあるので先に解きたいひとは上のリンクからどうぞ.

# 問題文(要約)
整数Nが入力される.大きさNのアルファベット・ランゴリを出力せよ.(ランゴリはインドのフォークアートであるらしい.)

いくつかのサイズのアルファベット・ランゴリの例↓

### size 3
“`
—-c—-
–c-b-c–
c-b-a-b-c
–c-b-c–
—-c—-
“`
### size 5
“`
——–e——–
——e-d-e——
—-e-d-c-d-e—-
–e-d-c-b-c-d-e–
e-d-c-b-a-b-c-d-e
–e-d-c-b-c-d-e–
—-e-d-c-d-e—-
——e-d-e——
——–

元記事を表示

【Python GUI】Tkinterを使ったDICOMのコントラスト調節とBMP変換

#目的

コード保存。中身は汚い。
– DICOM画像を任意のコントラストに調節しBMPに保存。
– コントラスト調節の式が怪しいかも。

#コード

“`python:WL_WW_changer.py
import cv2
import numpy as np
import glob
import os
import shutil
import os, tkinter, tkinter.filedialog, tkinter.messagebox
from tkinter import filedialog
import pydicom
#from pydicom.data import get_testdata_files

def adjusted_WL_WW():
#delete previous folder
if os.path.exists(“adjusted_WL_WW”):
shutil.rmtree(“adjusted_WL_WW”)

#input WL and WW
WL = int(inpu

元記事を表示

【Deep Learning】SONY neural network consoleをCUIから実行

#コード内容
コード保存のため投稿。 コードは汚い。
SONYが開発した、neural network console(NNC)をCUIから実行。SONYが提供しているNNablaライブラリを使用する。

#準備
– NNCのProject File(*.sdcproj)
– Neural networkのArchitecture(*.nntxt)
– 学習したparameter(*.h5)
– Testするinput data(*.csv)

#実行

“`bash:start_DL.sh
#!/bin/bash

#delete previous output
rm output_result.csv

#folder_dir=`pwd`
sdcproj=`ls *.sdcproj`
testdata=`ls *.csv`
network=`ls *.nntxt`
parameters=`ls *.h5`

#Value test data
nnabla_cli forward -c $network -p $parameters -d $testdata -o

元記事を表示

株価をダウンロードしてプロット

### はじめに

株取引を行うために統計を取りたい、と思い、株価のデータの取得方法を調べました。
株価をダウンロードしてプロットするところまでpython で動かせたので、メモします。東京証券取引所で取引されている3銘柄のデータをダウンロードして、こんな感じでプロットできました。

![Figure_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294040/ef284b61-5ad1-8759-560b-db487c9ce409.png)

何か大儲け、できないかな。。。。なんて。^^)

### Yahoo Finance からデータを取得するライブラリ

方法はGoogle先生に紹介していただいたページを拝見していろいろ調査したのですが、なかなか思うように「ここ1~2年のデータをスクリプトでダウンロードして比べる」という用途に使えなく苦労しました。Quandl, pandas_datareader などをさまよった挙句,

[yahoo-finance-api2](https://githu

元記事を表示

KaggleでOptunaを用いてXGBoostのハイパーパラメータをチューニングする(初心者向け)

# 概要
東大GCIのデータサイエンティスト育成講座内で行われたコンペティションの上位解法の中に、Optunaを用いてXGBoostのハイパーパラメータを決定したというのを見かけました。

その時は、機械学習初心者(現在も)だったので、「ふーん、そんなのがあるんだ」程度に見ていたんですが、いざKaggleのNCAAコンペでモデリングに取り組んでみると、ハイパーパラメータをどうやって決定するかで、悩みに悩んでいたところ、「Optunaというものがあったなぁ」と思い出したので、公式チュートリアルを見ながら自分流に調べて実装してみたものをまとめておきます。ちなみにQiita初投稿です。
# Optuna
Optunaは自動ハイパーパラメータ最適化ソフトウェアフレームワークであり、特に機械学習のために設計されたものであると書かれています。
先に、自分流のOptunaの使い方の流れを説明すると、
 1.スコア(値が小さいほど良いスコア)を返す関数を作る
 2.optuna.create_studyクラスのインスタンスにその関数を渡す
という風になります。
実際に、
$$(x-2)^{2}$$

元記事を表示

AtCoder Beginner Contest 157 参戦記

# AtCoder Beginner Contest 157 参戦記

## ABC157A – Duplex Printing

1分で突破. 書くだけ.

“`python
N = int(input())

print((N + 1) // 2)
“`

## ABC157B – Bingo

7分半で突破. 書くだけ……ではあるけど、エレガントに書こうと思えばどう書けばいいんですかね……. 特にビンゴ判定のところ.

“`python
A = [list(map(int, input().split())) for _ in range(3)]
N = int(input())

for _ in range(N):
b = int(input())
for y in range(3):
for x in range(3):
if A[y][x] == b:
A[y][x] = -1

for y in range(3):
f = True
for x in range

元記事を表示

【初心者】Python、FlaskとHerokuで、ニャンコつぶやきフォームを作った

#FlaskとHerokuを使って、簡単な投稿フォームを作った。
#(1)アウトプットイメージ
以下のような簡単な投稿フォームを作成することをゴールとした。
スクリーンショット 2020-03-01 21.23.24.png
つぶやく内容に”にゃー にゃー”、つぶやいたネコに”たま”を入力し、送信ボタンを押すと、
スクリーンショット 2020-03-01 21.25.01.png
こんな感じで投稿される。

#(2)仮想環境を設定
desktop

元記事を表示

pythonのpikaで色々なrabbimqの機能を使用する

# はじめに
前回の[pythonでrabbimqを扱う](https://qiita.com/mink0212/items/8d692e17b34793655c66)ではRabbitMqで単純なメッセージのやり取りを行いましたが、RabbitMqは色々な機能があるため今回はその色々な機能と使用方法をまとめます。

# 環境
– python:3.6.5
– イメージ:rabbitmq:3-management

# キューの確認設定
標準のpikaの設定ではRabbitMq内に送受信したいキューが存在しないときは自動的にキューを作成しますが、自動的にキューを作成せずにエラーしたい場合があります。その場合は、チャンネルの“` queue_declare() “`関数のpassive引数にTrueを与えるとキューがないときはエラーします。

## シチュエーション例
プロデューサー側で全てのキューを管理して、コンシューマー側では純粋に接続のみ許したいときなど。

## passiveをtrueにしたプロデューサー
前回の例として作成したプロデューサーの“` channel.q

元記事を表示

にじさんじで学ぶPythonプログラミング入門【カルロスピノ氏リスペクト】

こんにちは。タケシです。
インフラエンジニアとして働きながら、スキルの幅を広げるためにプログラミングを学んでいます。

Progateなどの教材で学習するだけでは興味がそそられず、いかにもお勉強って感じでやる気が出なかったのですが、初学者でも楽しく無料でプログラミングが学べそうな動画を先日見つけました。

[![IMAGE ALT TEXT HERE](https://i4.ytimg.com/vi/w0lKVhcnhkE/hqdefault.jpg)](https://youtu.be/w0lKVhcnhkE)
[ホロライブで学ぶPython入門~15分でYoutubeの情報取得までやる編~](https://youtu.be/w0lKVhcnhkE)

この動画では投稿主の**カルロスピノ氏**が、プログラミング初心者向けに**PythonでYoutubeの動画情報取得**をする方法を解説しています。

ブラウザ(Chrome)でPythonのコードを実行するので面倒な環境構築も不要ですし、お金もかかりません。

この記事ではカルロスピノ氏の動画を見た視聴者(私)が、動画内で紹介さ

元記事を表示

kaggleに挑戦するためのpytorch(LSTM編)

##はじめに
独学でpytorchを勉強していても、なかなかまとまった記事がなかったり、プログラミングをする上で自分が躓いた点をtipsとしてまとめるところもなかったので、自分向けに**絵や図**を使って後から思い出しやすいように工夫をしながら、KnowHowをここにまとめようと思います。

もし私と同じようなポイントで躓いたりしている人がいたら、このknowledgeが参考にあれば嬉しいです。

##利用するライブラリ
numpy
pandas
torch
matplotlib
seaborn
IPython.core.display

などです。
他にもimportしているものもありますが、サンプルコードの中で紹介します。

##0. 全体の流れ
事前準備
必要モジュールのインストール

1. 文書作成サイトで文書の作成と変数に文章を割り当て
2. 読み込んだ文章の分ち書き
3. 単語のラベル化(word2index)
4. 文章のラベル表現化(sentence2index)
5. テストデータと正解データの作成

———–↑↑↑ここまでpandas操作。↓↓↓ここか

元記事を表示

HOYAのVoice Text Web APIとFlask使用した音声合成アプリ

# APIキーを入手する
Voice Text Web APIのページの無料利用登録をクリックし、メールアドレスなどを入力して、APIキーを入手します。

# 動かしてみる
コマンドライン上で動かします。Ubuntuの場合、最初にcurlがインストールされていないので、インストイールします。

“`
sudo apt-get -y install curl
“`

curlがインストールできると、実際に動かしてみます。
任意のディレクトリに移動し、curlコマンドで通信します。音声合成エンジンとして、ヒカリを選択しました。

“`
curl “https://api.voicetext.jp/v1/tts” -o “test.wav” -u “上記で入手したAPIキー:” -d “text=ホヤ、ボイステキストの実験です。” -d “speaker=hikari”
“`

![1.png](https://qiita-imag

元記事を表示

Pythonのスタックとキューには何を使えばいいのか(各データ構造の速度比較)

# はじめに
本記事は、主に競技プログラミングにおける話です。

Python において、スタックとキューを実装するには複数の方法があります。

– スタック(stack)
– list を使う(`append()`, `pop()`)
– collections.deque を使う(`append()`, `pop()`)
– キュー(queue)
– list を使う(`append()`, `pop(0)`)
– collections.deque を使う(`append()`, `popleft()`)
– queue.Queue を使う(`put()`, `get()`)

さて、この中で一体どれを使うのが最適でしょうか。
今回はそれを速度面に注目して調べます。

# 計測方法
各データ構造に対して、要素の追加と取り出しを10回、100回、1000回、10000回、100000回行います。

どのコードも、以下の import 部分は省略しています。

“`python:import部分
from collections impor

元記事を表示

numpy その2

“`py:
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

print(arr)
print(arr.shape)
print(arr.ndim)

print(‘###############’)

arr2 = np.array([1, 2, 3, 4 ,5 ,6])

print(arr2)
print(arr2.shape)
print(arr.ndim)

print(‘###############’)

arr3 = arr2.reshape(3, 2)

print(arr3)
print(arr3.shape)
print(arr3.ndim)

print(‘###############’)

arr3 = arr2.reshape(3, -1)

print(arr3)
print(arr3.shape)
print(arr3.ndim)
“`

“`:実行結果
[[1 2 3]
[4 5 6]]
(2, 3)
2
###############
[1 2 3 4 5 6]
(6,)

元記事を表示

画像処理のメモ・備忘録

# この記事について
この記事は画像処理のメモ書きです。
あとで同じ処理を探しやすくするためにまとめていきます。

## 環境

`python 3.7.6`

使用パッケージ

“`
opencv-python==4.2.0.32
numpy==1.18.1
matplotlib==3.1.3
“`

### パッケージのimport

“`python
import matplotlib.pyplot as plt
import numpy as np
import cv2
“`

### 画像の読み込み

サンプル画像はお馴染みのものを使います。
![lena.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190554/5af765ad-e075-ba81-0397-ab1abcc5d5ff.png)

“`python

# 画像の読み込み
img = cv2.imread(“/home/jovyan/lena.png”)

# 色の変換
img = cv2.cvtColor(img,

元記事を表示

講義で書いたPythonのコードをまとめてみた その1

#はじめに
1年後期にPythonを使用した講義があったのでその記録をしておきます。
簡単な数学の問題もありましたが主に微分積分、線形代数に関する問題ををPythonにも解いてもらおうぜって感じの講義です。
使ったのはこれです。
まだまだ使いこなせていませんが…。
(当時のコードをまんま載せただけなのでプログラムへの指摘はなしで…)

– numpy
– sympy
– pandas
– matplotlib
– math
– mpl_toolkits.mplot3d

これ以外にも選択課題でベイズ最適化と巡回セールスマン問題と画像認識をやりましたがコピペだったので講義に関する最後の記事に参考にしたQiita記事だけ載せておきます。

“`python:本記事で使うやつ
import math
import nunmpy as np
import sympy
sympy.init_printing() #綺麗に見せたいんや
“`

##問題とコード

問1.次の6つの数を小さい順に並べよ。

$$
\sqrt[3]{4}, \hspace{5pt} \sqrt[2

元記事を表示

アワビの年齢予測モデルの作成

# はじめに
今回は[the UC Irvine Machine Learning Repository](http://archive.ics.uci.edu/ml/index.php)から、アワビのデータを取得し、アワビの年齢予測をするモデルの作成までの道のりを書いていこうと思います。
Jupyter notebookでの実装の確認を行なっていますので、環境によっては違った挙動をするかもしれませんので、注意してください。

# データの準備

とりあえず、使用するmoduleを読み込んでおきます。

“`python
import pandas as pd
import sklearn
from pandas import Series,DataFrame
from sklearn import linear_mode
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestRegressor
“`

今回の使用するデータは[こちら](http://arc

元記事を表示

VSCodeでPythonの仮想環境を使えるようにする。

#はじめに
pythonの機械学習系のライブラリを入れた仮想環境を作成した際に、VSCodeでpython interpreterのpathを通すのに苦戦したため、解決策をまとめます。(備忘録のために書きます。)

# 仮想環境は作成済みの前提

仮想環境の作成から始める方は他の方の記事をご覧ください。

https://qiita.com/search?q=python+%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83

# コマンドパレットを開く
VSCode上で **⌘+shift+P**/Ctr+shif+Pでコマンドパレットを開き、**python: select interpreter** と打ち込み、pythonの実行環境を選びます。

スクリーンショット 2020-03-01 14.19.43.pngpandas の SettingWithCopyWarning

#はじめに
pandasを使ってcsvファイルを操作するアプリをつくっていたら、
結果は思った通りに編集されるのだが、
SettingWithCopyWarningと警告された。

##SettingWithCopyWarning
参照渡し(っていうの?)であるがゆえの警告的なものっぽいっと思っています。
元のデータの一部を抽出→そのうち一部へ代入した場合、
「元のデータのその部分」を修正したかったのか、
「一部を変更した新しいデータ」を作りたかったのかどっちかわからないよ、という感じ?

お気軽にコメントにてご鞭撻下さい。

##解決
copy()で、参照ではなくコピーであることを明示したら、
SettingWithCopyWarningは解消されました。

##好きな果物をcsvファイルにまとめるアプリ

まず、
output_filesというディレクトリ(フォルダ)に
data.csvという名前のcsvファイルをつくる。

中身は
apple,8
orange,15
banana,4
apple,1
となっている。

“`:data.csv
apple,8
orange,15

元記事を表示

【AWS SAM】sam local invokeの「invalid ELF header」をなんとかする

# 環境

– MacOSX
– SAM CLI, version 0.41.0
– python3.8

下記内容は`sam init`で作成されたものそのまま使用しています。
違いは`requirements.txt`の内容のみです。

# 現象

以下のような状態でpip installをして`sam local invoke`をすると invalid ELF headerが発生する。

“`bash
$ cat sam-app/hello_world/requirements.txt
requests
pysftp
$ pip install -r requirements.txt -t ./

$ sam local invoke
Invoking app.lambda_handler (python3.8)
(中略)
{“errorType”:”Runtime.ImportModuleError”,”errorMessage”:”Unable to import module ‘app’: /var/task/bcrypt/_bcrypt.abi3.so: invali

元記事を表示

OTHERカテゴリの最新記事