Python関連のことを調べてみた2021年06月23日

Python関連のことを調べてみた2021年06月23日

excelでcsvエクスポートし、pandasで読み込む時

## 通常読み込み
通常、csvファイルは以下のコードで読み込みができる。

“`
import pandas as pd

path = “filename”
data = pd.read_csv(path)
“`

しかし、excelからエクスポートしてきたcsvファイルを読み込むと

“`
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x95 in position 0: invalid start byte
“`
上のようなエラーが出る。

## 解決方法

以下のコードで読み込むことで、解決できます。

“`
import pandas as pd
import codecs

path = “filename”
with codecs.open(path, “r”, “Shift-JIS”, “ignore”) as file:
data = pd.read_table(file, delimiter=”,”)
“`

元記事を表示

公式実装のvision transformerがfrom vit-jax import hyperのエラーで使えなくなった話

#Vision Transformerのアップデート

6/20にVision Transformerのアップデートがありました。その関係で以前の公式実装を頼ると使うことができなくなりました。

下記がVision Transformerの公式実装になります。
https://colab.research.google.com/github/google-research/vision_transformer/blob/master/vit_jax.ipynb

URLに飛び、変更履歴を見るとNotebookでも変更が加わっています。

原因というか変更点はVision Transformerように作成されたvit-jaxというライブラリの中身になります。Hyperなどの一部のモジュールが削除されています。

#対処法

自分の場合は[記事](https://qiita.com/kanataken/items/dc579fa0f53b7f84ef25)を参考にfine tuningを行っていたためにコードをいじっていたものですからすぐに対応ができない状態でした。

もちろん本当は公式

元記事を表示

天文データ解析入門 その20 (pycupid: pythonでclumpfind等を使う)

本記事では、[pycupid](https://pycupid.readthedocs.io/en/latest/index.html) の基本的な使い方について記述します。pycupid には GaussClump, ClumpFind, FellWalker, Reinhold の4つの構造同定アルゴリズムが入っています。

今回、例として国立天文台の [FUGIN](https://nro-fugin.github.io/) プロジェクトで得られた野辺山45m電波望遠鏡の CO 輝線のアーカイブデータを用います。データは
http://jvo.nao.ac.jp/portal/nobeyama/
から
FGN_03100+0000_2x2_13CO_v1.00_cube.fits
をダウンロードします (重いです)。

# インストール
pycupid (ver. 0.1.4) は2021年6月現在、**Python2.7, 3.4, 3.5, 3.6 でしか動作しません**。

“`
pip install pycupid
“`
もしくは

“`
pip2.7 insta

元記事を表示

macでpythonの環境を設定しなおす

##狙い
bashやbrewを中途半端にいじった結果、自分の環境がわからなくなったため、最初からやり直します。

##環境
macOS Big Sur 11.0
Xcodeをインストール・アップデート済み
brewインストール済み

##ターミナルを整える
デフォルトシェルをzshにする
https://support.apple.com/ja-jp/guide/terminal/trml113/mac

##インストールしていく
以下をターミナルに打っていきます。
“zsh
brew install pyenv
pyenv install 3.9.5
touch ~/.zshrc
echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.zshrc
echo ‘export PATH=”$PYENV_ROOT/bin:$PATH”‘ >> ~/.zshrc
echo ‘eval “$(pyenv init -)”‘ >> ~/.zshrc
echo -e ‘if command -v pyenv 1>/dev/null 2>&1; then\n

元記事を表示

【LeetCode】就活に向けたコーディングテスト対策 #12

#はじめに
おはようございます.
M1就活生が[LeetCode](https://leetcode.com/)から,easy問題を中心に**Python**を用いて解いていきます.

https://leetcode.com/

↓では,解いた問題のまとめを随時更新しています.
[まとめ記事](https://qiita.com/halpi/items/43761b89a1873dcc9a5c)

https://qiita.com/halpi/items/43761b89a1873dcc9a5c

#問題
今回解いたのは,難易度easyから [問題53のMaximum Subarray](https://leetcode.com/problems/maximum-subarray/) です.
問題としては,整数配列`nums`が与えられたとき,最大の和を持つ連続した部分配列を見つけ,その和を返すというもの.

入力例と出力例は以下の通りです.

Example 1:

“`python
Input: nums = [-2,1,-3,4,-1,2,1,-5,4]
Output: 6

元記事を表示

LineMessagingAPIを利用してトーク上で乗り換え案内の結果を送信する

# はじめに
yahoo天気予報をLineMessagingAPIを使用して、トーク上でやりとりする記事を投稿してから
長い時間が経ってしまいましたが、久しぶりに進捗が出たので投稿しようと思います。

今回は、本来の目標でもあったyahoo乗り換え案内をLINE上でやりとりを行う方法について
説明していこうと思います。

# 設計・構造について
どのような方法で実装しようかと考えたのですが、大体二案でした。

* スクレイピング
* yahoo Web API

まず、yahoo天気予報の際にも使用したスクレイピングです。
こちらは一番慣れていることと、手軽に実装することができるというところから第一候補でした。
ただし、方法によってはアクセス数過多になったりすることがありそうなので、
もしも色々な方に使ってもらえるように開発するとなると、この方法はいまいちかもしれません。

代わりに、二つ目の案であるyahooのAPIを使用した場合であれば、アクセスのリミットなども
定められているため広く普及させる機会ができれば、こちらを使用して開発したいなと考えています。
今回もこっちの方法で開発す

元記事を表示

SimSwap で遊んでみました

# 概要

SimSwap という写真の顔を取り替えるプログラムが公開されていたので、インストールして遊んでみました。
OS が Windows なのと Anaconda を入れていないことで少し手間取ったので、手順を共有したいと思います。

# 環境

Windows 10
Python 3.8.1
CUDA Toolkit 10.2
NVIDIA GeForce GTX 1080
GeForce Game Ready ドライバ 456.71

# 手順

### 1. CUDA Toolkit をインストールする

[SimSwap/preparation.md](https://github.com/neuralchen/SimSwap/blob/main/doc/guidance/preparation.md) を見ると CUDA をインストールした方が良さそうなので、バージョンを合わせてインストールします。
上でも書いたとおり私は Anaconda を入れていないので、`conda` ではなくインストーラをダウンロードして入れました。

こちら → [CUDA Toolkit

元記事を表示

pyenv経由でMacにPythonをインストールする

MacにはデフォルトでPythonがインストールされていますが、バージョンが古く、今後複数のバージョンを使用する可能性も考慮してバージョン管理ツールである「pyenv」(ぱいえんぶ)を使って新しいPythonをインストールしてみました。

2021/5以降はパスを通す際に一部記述を変更する必要があるということがあったので、記事にしました。内容に不備などありましたら教えていただけると幸いです。

# Homebrewのバージョン確認

まずは“pyenv“のインストールをするために“Homebrew“を準備します。Macでは最初から用意されていますが、一応確認しておきます。

ターミナルを開き、下記コードをコピペしてください。

~~~SHELL
brew -v
~~~

以下のようになったらOKです。

~~~SHELL
Homebrew 3.2.0
~~~

もし“brew: command not found“とか出てきた場合はHomebrewがインストールされていませんので、下記の記事などを参考にお持ちのPCにHomebrewをインストールしてください。

http

元記事を表示

立科町の形で学ぶ一番細い場所の測定方法

#はじめに

長野県の地図を見ていると気になるものがありました。

![立科町.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/715986/c6846ed2-9940-bda9-0b83-dd4e57771e39.png)

この町、めっちゃ細いところがありますね。

**これは長さを測ってみるしかないですね**

どれくらい細いのか、調べてみました。

# 手順

立科町の画像を用意し、グレースケールにします。

“`python:
img = cv2.imread(“tateshina.png”,3)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
thresh,bin_img = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
plt.imshow(bin_img,cmap=’gray’)
“`

![モノクロ立科.png](https://qiita-image-st

元記事を表示

ColabにKaggleのデータをダウンロードする

ノートPCしか持っていなくGPUが使えないので、Colabを使ってみることにしました。
Colab NotebookでKaggleのデータをダウンロードする手順を以下にメモリました。

## 1. Kaggle APIをインストール

“`shell
!pip install kaggle
“`

## 2. kaggle.jsonを使った認証

kaggleのユーザープロファイルの「Account」タブを開き、「Create API Token」を選択します。
API認証情報を含むファイルkaggle.jsonがダウンロードされます。

以下のセルを実行して、Colabランタイムにkaggle.jsonをアップロードします。

“`python
from google.colab import files

uploaded = files.upload()

for fn in uploaded.keys():
print(‘User uploaded file “{name}” with length {length} bytes’.format(
name

元記事を表示

Chrome Bookでtensorflow lite動かしてみた

エッジデバイスで動かせる画像認識ライブラリとして有名なtensorflow liteを2 in 1 のChromeBook動かしてみました。

# 環境
– Chromebook(Lenovo ideapad duet)
– Python 3.7.3

# 手順
予めLinuxを有効化したChromeBookで作業することを前提にしています。

以下チュートリアルを参考にしています。

https://github.com/tensorflow/examples/tree/master/lite/examples/image_classification/raspberry_pi

## numpy,pillow,tensorFlow Liteのインストール
“`shell
pip install numpy
pip install Pillow
# python3.7のarm64用のtensorFlow liteをインストール
pip install https://dl.google.com/coral/python/tflite_runtime-1.14.0-cp37-c

元記事を表示

【LeetCode】就活に向けたコーディングテスト対策 #11

#はじめに
こんばんは.
M1就活生が[LeetCode](https://leetcode.com/)から,easy問題を中心に**Python**を用いて解いていきます.

https://leetcode.com/

↓では,解いた問題のまとめを随時更新しています.
[まとめ記事](https://qiita.com/halpi/items/43761b89a1873dcc9a5c)

https://qiita.com/halpi/items/43761b89a1873dcc9a5c

#問題
今回解いたのは,難易度easyから [問題35のSearch Insert Position](https://leetcode.com/problems/search-insert-position/) です.
問題としては,整数でソートされた入力配列`nums`と,入力値`target`が与えられたとき,`target`の入る位置(順番,インデックス)を返すというもの.

入力例と出力例は以下の通りです.

Example 1:

“`python
Input: nums = [1

元記事を表示

Python set型 集合演算

**集合演算**

和(union)
積(intersection)
差(difference)

**和(union) 記号 | 要素の和**

“`
union = {1,2,3,4} | {6,7,8,9}
print(union)
“`
結果
{1, 2, 3, 4, 6, 7, 8, 9}

**積(intersection) 記号 & 被っている要素**

“`
intersection = {1,2,3,4,’A’} & {4,7,8,9,’A’}
print(intersection)
“`
結果
{4, ‘A’}

**差(difference)記号 & 左の集合から右の集合を引く残ったもの**

“`
difference = {1,2,3,4,5,} – {2,3,4,5,6}
print(difference)
“`
結果
{1}

元記事を表示

pythonエンジニア認定試験受験記(その後)

### 試験後

以下のオデッセイ開催のpython基礎認定試験を受験後の感想について記載する

Odyssey CBT | オデッセイ コミュニケーションズ
https://cbt.odyssey-com.co.jp

### 結果

無事合格した(ありがとうございます)

![IMG_1247.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530719/481a0dcb-80c6-03ea-a3c0-771753ca2228.jpeg)

感想から言うとpythonと言う言語を一通りきちんと理解しているかと言う基本的なところを問われていたと思う。
あと個人的な所感としてはエラーの処理の部分のウエイトが思ったより多かった(この点はシャッフルかもしれないので一概にそうだとは言えないが)

全体的に意地悪な問題はあまりなかった。
と言うかPRIME STUDYやDIVE INTO CODEの模試より簡単であった。
この2つで8割方取れるのであれば合格は可能だと思われる。

試験会場に行ってからは受付の方に

元記事を表示

Flaskで始めるSNSチュートリアル

## はじめに

どうも、SNSはTwitterしか利用しない男、
**プラチナ☆みゆき**である。

長らくPythonでAPI芸人をやっていたが今回からは本腰を入れてWeb開発を行っていくつもりだ。

その記念すべき第一回として、PythonのWebフレームワーク**Flask**を使って簡単なSNSを作っていきたいと思う。

作成したアプリは以下のようになった。

![Videotogif (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208060/80314a4e-74f9-343c-3f5d-950cc3771db1.gif)

作成したアプリは[こちらから](https://flask-sns.herokuapp.com/)
コード全文は[こちら](https://github.com/KamiHitoe/flask_sns)
テストユーザとして「白金御行」と「三宮かぐや」を用意してるのでお暇は方は連絡して頂いても良いと思う。

また、本記事は長いので1日で実装しようとせず、数日か

元記事を表示

Rainbowstreamインストール&インストール直後のエラー

[Rainbowstream]は洒落たCLIのtwitterクライアントですが、最近あんまり流行っていないのか、インストール直後のエラーがの解消法で日本語の情報が見当たらなかったので、投稿します。

# rainbowstreamとは
こんな感じのCLIクライアント。会社で上司に見つからずにTwitterをやるのにとても良い笑
![Screenshot at 2021-06-22 20-41-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613415/7e00eef5-1ee2-dae9-eb09-8db23f46cb34.png)

home – タイムライン表示
t – tweet
ls fl – フォロアー検索
h – help
q – quit
など

詳しくは↓
https://rainbowstream.readthedocs.io/en/latest/

# インストール方法

pipでいれるだけ。。
“`# pip3 install rainbowstream“`

必要に応

元記事を表示

人物の画像から肌色とりだしたった

# コード共有用
コード置いとくからコメント見ながら読み取ってみて

“`python

import cv2
import numpy as np

def main():
# 肌色取り出すためのパラメータ
HSV_MIN = np.array([0, 30, 60])
HSV_MAX = np.array([20, 150, 255])

# 入力画像の読み込み
img = cv2.imread(“./image.jpg”)

#加工前の画像コピー
cp_img = img

#convert hsv
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

#mask hsv region
mask_hsv = cv2.inRange(img_hsv, HSV_MIN, HSV_MAX)

# save image
cv2.imwrite(“mask_hsv.jpg”, mask_hsv)

# 肌色以外の部分を黒画素(0

元記事を表示

PythonとOpenCVのみでカメラからQRコード読み取り

PythonとOpenCVのみでPCのWebカメラからQRコードを読み取っている記事が意外となかったのでやってみました。
使用環境は以下の通りです。

* MacBook Pro (15-inch, 2019)
* MacOS Catalina 10.15.7
* Python 3.9.0
* opencv-python 4.5.2.54

Pythonのインストールは済んでいる前提です。

# 1. opencv-pythonのインストール
PythonからOpenCVが使用できるopencv-pythonをpipでインストールします。

“`
$ pip install opencv-python
“`

# 2. QR読み取りコード
“`py
import cv2

# カメラデバイス取得
cap = cv2.VideoCapture(0)
# QRCodeDetectorを生成
detector = cv2.QRCodeDetector()

while True:
# カメラから1フレーム読み取り
ret, frame = cap.read()

元記事を表示

Plotlyでpattern fillができるようになったので視認性の良いグラフを作ろう!

2021/6/22、Plotly.pyの新バージョン5.0.0がリリースされ、新しくpattern fill (a.k.a. hatch, texture)が使えるようになっています。

pattern fillの基本的な機能は私が実装してPRを投げたのですが[^1]、その後より使いやすい機能拡張が施されて正式にライブラリの一部としてリリースされました。

[^1]: https://github.com/plotly/plotly.js/pull/5520

[Introducing Plotly.py 5.0.0 – a new federated Jupyter extension, Icicle charts, and Bar chart patterns](https://community.plotly.com/t/introducing-plotly-py-5-0-0-a-new-federated-jupyter-extension-icicle-charts-and-bar-chart-patterns/54039)

Plotly、とても良いんですよ。例えば、

元記事を表示

Bokehの図にマウスポインタの位置の値を表示する拡張機能を付加する方法

[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Soliton-Analytics-Team/CrosshairLabel/blob/main/CrosshairLabel.ipynb)

[以前の記事](https://qiita.com/saliton/items/6249d92f266ef435a5f0)でインタラクティブなローソク足をBokehで作成しました。その際、値を吹き出しで表示する機能は邪魔なので除いてしまいました。しかし、十字線が表示されるとはいえ、目視で値を読み取るのはちょっと苦労します。そこでよくあるのは十字線に連動してその値を表示するGUIですが、この機能はBokehには標準機能として用意されていません。本記事ではBokehの機能拡張を利用してこれを実現します。

まずはデータを取得します。

“`Python
import pandas_datareader.data a

元記事を表示

OTHERカテゴリの最新記事