Python3関連のことを調べてみた2019年12月19日

Python3関連のことを調べてみた2019年12月19日

自然言語処理をしてみよう!…で、一番初めにエラーで止まった原因「文字コード」

自然言語処理をやろう!
と思ったとき、プログラムはいろんなものを参照しながらやっとできたものの
テキストを開いたりするときにエラーが書かれて先へ進めず…。

プログラミング初心者…、訳も分からず調べたら文字コードの問題だったらしいので
解決策としてまず最初に出会ったのが、テキストを開くとき文字コードを指定するというもの。

エディタで調べてみると、「shift_jis」で書かれているようなので
じゃぁ、まずはそれをやってみようかな。

##文字コードを指定してテキストを開く

始めのこの部分を

“`Python3
f = open(uencode.txt)
“`
次のように変更

“`Python3
import codecs
f= codecs.open(unencode.txt, ‘r’, ‘shift_jis’)
“`

わーい、読み込めた!と思ったら今度は自然言語処理で書いていたプログラムはUTF8を求めていたようで、他の所でエラーが出てしまった…。

なら、テキストで書かれている文字コードをUTF8に変えたものを作ってしまおう。

##文字コードを変換してテキストを

元記事を表示

Python+Cloud Vision APIでOCR、Bounding Boxまで!

# はじめに
自分のプロジェクトで、特に自然言語処理をやっている方々は、データマイニング作業とかやるときに、画像内の文章を抽出したいと言う作業がいずれか出てくると思います。そう言う時は、「GCPのCloud Vision APIを使えばいいのでは?」なんですが、やったことある人にはわかるかもしれないんですけど、帰ってきた結果は文章になっていなかったり、バウンディングボックスの座標も各単語の座標になっていて、一個の文章に対するバウンディングボックスになっていないのが困りますよねー

今回は、これらの作業をチュートリアル形式でやっていきたいと思いますので、是非皆さんのデータマイニング作業には役に立ててればなと思います!ただ、このチュートリアルの前提としては、自分のGCPのアカウントを持っていることを想定しているので、やってみたいけど、アカウント持っていない方は是非アカウント発行してください![無料](https://console.cloud.google.com/freetrial?hl=ja&_ga=2.100299998.-1715293248.1575339025)です!(利用可能

元記事を表示

自動ざくざく、ビットコイン。Python初心者がコインチェックの1分足チャートを作った話

### 概要
仮想通貨取引(ビットコイン)の自動売買が普通になってきたので,コインチェックで自動売買をするため,Python初心者が1分足を自前で生成する話.コインチェックで公開されているAPIでは1分足を取得できなかったので,自作した.コアとなるロジックを簡単に説明した後,全ソースコードと実行結果を載せる

### 準備
コインチェックが提供している[API](https://coincheck.com/ja/documents/exchange/api)を確認する.コインチェックではRESTでAPIを提供しているが,一部WebSocketを使ったAPIも提供している.現在のところ,WebSocketで取得できるのは

– 取引履歴
– 板情報

であり,1分足を作成するには**取引履歴**を使う.取引履歴の使い方を見ると,

“`:REQUEST
{
“type”: “subscribe”,
“channel”: “[pair]-trades”
}
“`

がリクエストのフォーマット.

“`:RESPONSE
[
“ID”,
“取引ペア”,
“注文のレ

元記事を表示

Djangoハンズオン

## Djangoハンズオン

– 目標
– ごくごく簡単なTodoアプリを作成し、Djangoの処理の流れを理解する。
– 前提知識
– 簡単なHTMLの理解
– httpメソッドの理解(GET,POST)
– このハンズオンではやらないこと
– アプリケーションの見た目をきれいにすること(CSS,bootstrap)

#### 環境

OS: Ubuntu 18.04
Python: 3.6.8
Django: 2.2.5 -> 2.2.8

Windowsについては後々から追加していきます。Macは手元にないですがLinuxと一緒でしょう(?)。可能であれば追加します。

[前回](https://qiita.com/cuz/items/bee679dc426b690d2fe3)の記事を参照し、ディレクトリ構成が以下の状態になっていることが前提です。
もしまだ設定できていない場合は、先に環境の作成をお願いします。

## Todoアプリの作成

ここからアプリを作成していきます。
“django-admin startapp mytodo“

元記事を表示

CasperFFGに重み付き投票を適用することでセキュリティぶちあげする論文紹介

この記事は、[Ethereum Advent Calendar 2019](https://qiita.com/advent-calendar/2019/ethereum)の 18 日目です。

## はじめに

昨日は Ethereum2.0 やコンセンサスアルゴリズムについて書きました。

[Ethereum2.0 を例にしてコンセンサスアルゴリズムとは何か説明する](https://qiita.com/kotaroooo0/items/832166b1e956a60175e0)

今回は、Ethereum2.0 のコンセンサスアルゴリズムについての研究を紹介する。

どのようにコンセンサスアルゴリズムが研究され改善する方向へ行くかが分かれば嬉しい。

## Weighted Voting on the Blockchain: Improving Consensus in Proof of Stake Protocols

この論文は、2019 IEEE International Conference on Blockchain and Cryptocurrency (ICBC)

元記事を表示

WindowsでPythonの環境構築

## WindowsでPythonの環境構築

#### 事前条件
– とくになし

#### 想定してた手順
1. pyenv installする
2. pyenv コマンドで使いたいバージョンのpython指定する
3. 環境変数のパス通す

こんな感じでやればできるんだと思いました、、が、
**Windowsではpyenv使えません**
https://github.com/pyenv/pyenv/issues/62

なので、

#### 実際に行った手順
1. Python公式から好きなバージョンをダウンロード
– https://www.python.org/downloads/
2. 環境変数のパス通す
3. **python -version** を打てばPython使えるようになったか確認できます

Windowsで*pyenv使えないのは知りませんでした

*pyenv…Pythonのバージョン管理ツールのことで、`pyenv install 3.6.0`とかやるとそのバージョンを使えるようにできる便利なものです。

備忘録

元記事を表示

scapy で仮想 IP を作成し ping の応答を得る。

## はじめに

Scapy は、ネットワークパケット操作のツールで、パケットの生成からデコードまで、色々な事ができます。
例えば、通信エラー発生時のパケットを同じように作成して動作確認するなど、問題の再現テストなどにも利用できると思います。
ここでは、単に仮想的なアドレスに対しての ping 応答を得るだけの環境を作成してみましたので、その説明です。

## scapy のインストール

・RedHat
 https://access.redhat.com/solutions/3759961
 (How to install scapy for network troubleshooting in Red Hat Enterprise Linux 7? )

## arp 応答プログラム

IP 通信を行うためには、まずは arp の問い合わせに対して応答を返さないといけません。
そのためのプログラムとして以下。※どこかの URL を参考にしたのですが、もう思い出せない。

“`
#!/usr/bin/python3

from scapy.all import *

# Your

元記事を表示

さくらのレンタルサーバスタンダードに python3 で pip3 したメモ

当方、Linuxといえば「ls? 隠しファイル見るのは、えーっと、-aだっけ?」ぐらいの知識しかないです。
が、必要に駆られて、さくらのレンタルサーバにpython3をインストールしました。

参考にしたページ:https://ricom-techno.com/65/

上記ページに書かれている通りやればできました。
素晴らしかったです、記事主さんありがとうございます。

# 失敗を含む作業の流れ

要約は「pythonのバージョンは **3.8じゃなくて3.6** だよ」です。

以下は薄い内容の失敗談なので、お時間がある方はどうぞ。

## python3.8.0を何事もなくインストールしてしまう

pythonのサイト見たら、3.8.0というやつがstableだと書いてありました。
浅はかにも「わかんないけど、新しい方がいいのかなぁ?」と思いました。

さくらにSSHで接続し、ホームディレクトリに居る状態で:

“`shell:作業場所作って
% mkdir -p ~/wk/p3
% mkdir -p ~/local/python
“`

“`shell:Pythonをダウ

元記事を表示

kaggleを始める前に、python言語が壁な人への導入【全7講義まとめ】

#はじめに
日経 xTECH ビジネスAI Advent Calendar 2019
[AI道場「Kaggle」への道](https://qiita.com/advent-calendar/2019/xtech-businessai-kaggle)の18日目を担当させていただきます。

過去の記事で、
[kaggleに登録したら、まずcontributerを目指そう](https://qiita.com/Ringa_hyj/items/22954bb7bbd8a4671126)
なんて記事を書きましたが、kaggleって興味あるけど、そもそもpythonインストールしただけで何もしてないんだよね・・という方!
kaggleにはcoursesという導入を助けてくれるコーナーがあるのですよ!
導入も学べてコンペで技術も学べる!kaggleってすばらしい!

#英語なんだけど・・・

プログラミングとか機械学習界隈は英語ばかりなんです・・・
助けてg〇〇gle先生! でもいいのですが、今回は細かい部分にコメントを入れながらpython導入コースのさらに導入を担当しようかと。

#kagg

元記事を表示

スクレイピングとデータ保存

素人が投稿サイトから情報をスクレイピングし、sqlite3で保存するまでのメモです。
[雑談Slack Advent Calendar 2019](https://adventar.org/calendars/4684) 18日目の関連記事でもあります。

先人の多くの記事を参考にしました。
`Beautifulsoup4`で他の記事を検索されると、そちらのほうが詳しいでしょう。

##やりたいこと
– 投稿のサムネイルページをみて、概要情報をDBに保存する。
– 必要があれば各投稿ページをみて、詳細な投稿情報をDBに保存する。

##環境
– Windows10 Pro + Python3.7.1 x64 (BeautifulSoup4 , SQLite3)

##対象ページの情報調査
スクレイピング対象のページから使えそうなテキストデータをピックアップします。

– __サムネイルページ__
![Qiita説明用1-サムネイルページ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223386/0

元記事を表示

SQLite3からcsvへ出力する

# はじめに
いつもはcsvからデータを分析することが多いのですが、今日はsqliteのデータベースにデータが入っていました。
今回は、sqliteからcsvファイルを出力するメモを書いていきます。

# 基本のコマンド
|コマンド|説明|
|—|—|
|.tables|テーブルの一覧表示|
|.schema|テーブルの構造を表示|
|.quit|終了する|
|.headers|onにするとヘッダーが出る|
|.mode|csvにするとカンマ区切りになる|
|.show|設定の表示|
|.output|ファイル指定すると出力先がファイルになる|

## データベースを開く
最初に編集するデータベースを開きます。
`sqlite3 hoge.sqlite3 `

## データベースからcsvに書き出す
`fuga`の部分を.tablesで出てきた取得したいデータに書き換えてください。

“`
sqlite> .tables
sqlite> .headers on
sqlite> .mode csv
sqlite> .output output.csv
sqlite> selec

元記事を表示

LamdaでPythonを使い、TwitterAPIで自動「いいね」する!

今回のものは、過去の[この記事](https://qiita.com/gurensouen/items/484e3198bcafa69f5c8b)を元に加筆/修正したものになります!

記事タイトル通り、AWSサービスのLambdaを使用して、Twitterの自動「いいね」などをしつつ、LambdaでPythonを使う方法にフォーカスを当てて簡単に説明していきます。

##本題の前に
– TwitterAPIを使用するために必要なアクセストークンの取得は[こちら](https://bookreco.net/program/twitterapi_using/)で!

– Pythonのpipコマンドのインストールは[こっち](https://qiita.com/suzuki_y/items/3261ffa9b67410803443)で!

##本題

####ファイル作成

デスクトップに作業用ディレクトリを作成しましょう。
コマンドでも、「control+クリック」でも構いません。
ただ後々めんどくさくなるので、ローマ字表記にしましょう。
作成したら、ターミナルかコマンドプロンプト

元記事を表示

親クラスで子クラスのクラス名を取得する

これでKodomoと出力される

“`python
class Oya(object):
def __init__(self):
print(type(self).__name__)

class Kodomo(Oya):
def __init__(self):
super().__init__()

child = Kodomo()
“`

元記事を表示

Bubble Sort

# Pythonで「バブルソート(Bubble Sort)」

## はじめに
ここでは[「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」][1]の中で取り上げられている[「AOJ (Aizu Online Judge」)][2]の問題を自分で解いた際に学んだことや、こう考えれば分かりやすいと感じたことなどを自分への整理も兼ねてまとめています。
このテキストはC++で書かれているので、私のようにpythonで勉強をされている初学者の方の参考になれば幸いです。また私自身も初学者ゆえ、至らない点が多々あると思いますので、ご指摘・ご助言頂ければ喜びます。よろしくお願いします。

## 問題詳細
[ALDS1_2_A; Bubble Sort][3]
バブルソートで昇順に並べ替える問題です。
問題詳細は上記リンクをご参考ください

## 考え方
●順番が逆になっている隣接要素が無くなるまで、次の処理を繰り返します
1. 配列の末尾から隣接する要素を比べていき、大小関係が逆なら交換

## pythonコード
“`python
def BubbleSort(A, N):

元記事を表示

自分用のメモ python

###とりいそぎ
重み付きランダム選択

“`python
import random
data = [“1″,”2″,”3”]
w = [5,3,2]
for i in range(10):
print(random.choices(data,weight=w))
# result
# “1”:5
# “2”:3
# “3”:2
“`

自身が置いてあるディレクトリ名の取得

“`
import os,sys
print(os.path.dirname(sys.argv[0]))
# result
# C:\~~~
“`

半角大文字英語と数字のリスト

“`
alph = [chr(i) for i in range(65, 65+26)]
num = [chr(i) for i in range(48,48+10)]
# result
# alph = [“A”,…,”Z”]
# num = [“0″,…,”9”]

“`

元記事を表示

Python B問題対策(Atcorder)

#for文問題
“`python
N=input()

cnt=0
for i in range(len(N)):#書き方忘れてた…
cnt+=int(N[i]) #int型にしてなくて、躓いてた(笑)

if int(N)%cnt==0:
print(“Yes”)
else:
print(“No”)
“`
https://atcoder.jp/contests/abc100/tasks/abc100_c

“`python
N=int(input())
A=list(map(int,input().split()))#一旦、入力を全て終了させる!
ans=0

print(A)

for a in A:
cnt=0
while(a%2==0):
a/=2
cnt+=1
ans+=cnt
print(ans)

#入力
10
2184 2126 1721 1800 1024 2528 3360 1945 1280 1776

#出力
[2184, 2126, 1721, 1800, 1024,

元記事を表示

Vultr で GeoDjango アプリケーションを動かすまでの長かった道のり

このポストは、[Django Advent Calendar 2019 – Qiita](https://qiita.com/advent-calendar/2019/django)の17日目の記事です。

こんちは!しんせいたろうです。[モグモグDjango](https://mogumogu-django.connpass.com/)の主宰してます。

現在、[アーバンデータチャレンジ](https://urbandata-challenge.jp/)に東東京のアザラシチームの一員として、DRFを頑張っています。

「アーバンデータチャレンジ」とは、地域課題の解決を目的とした地方自治体を中心とする公共データを活用した年間のイベント開催を伴う一般参加型コンテストです。東東京チームは定期的にがやがや会という楽しくもくもくする会を開催していますので、公共データや地域課題解決などに興味があるエンジニアの方、ぜひぜひお越しくださいませ。くわしくはこちら→[UDC東東京 – connpass]
(https://udceasttokyo.connpass.com/)

今回、ある公共データを

元記事を表示

Pythonで負の数の余りを求めるとどうなる?

#目的
余りを求める計算はよく行う
例えばリストで余りを使えば要素数をオーバーしても最初に戻って参照できる

“`python
array = [“a”, “b”, “c”]
index = 2

print(array[index])
#>> c

print(array[index+1])
#IndexError: list index out of range

print(array[(index+1)%3])
#>> a
“`

ここで単純な疑問
__負の数の余りを求めたらどうなるんだろう__
数学としては余りは正の数になる
果たしてそうなるのか、もしくはエラーになるのか

#やってみた
負の数を3で割った余りを求めてみる

“`python
print(-1%3)
#>> 2
print(-2%3)
#>> 1
print(-3%3)
#>> 0
print(-4%3)
#>> 2
print(-5%3)
#>> 1
print(-6%3)
#>> 0
“`

全て正の数
(割られる数) = (割る数) * (商) + (余り)
を満たす余りになった
余りは割る数よ

元記事を表示

matplotlibの謎の1行目をたった1文字で消し去る超小技

#はじめに
Pythonで簡単にグラフを描画できるツールであるmatplotlib
これをJupyter Notebook上などで使いグラフを書こうとすると、グラフの上に謎の1行目が表示されることがある。今回はその謎の1行目を**たった1文字**で消す方法を書く。

# 問題
謎の1行目とは、以下の画像のようなものである。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542184/02a69c20-3117-12a1-697c-e1b668911f75.png)

この\の他にも、\など、謎の1行目に表示される文字列はさまざまである。

# 原因
そもそも、この1行目はmatplotlib固有の問題ではなく、Jupyter Notebookの仕様によるものである。
Jupyterでは、セルの最後に評価したオブジェクトが出力される。例えば、変数str

元記事を表示

スマホを置き忘れて家を出るのをなんとかできないかと思って頑張ってみた

[IoTLT Advent Calendar 2019](https://qiita.com/advent-calendar/2019/iotlt_neo) 17日目の記事です。

昨年に引き続きIoTLTのアドベントカレンダーを担当させていただくことになりました。よろしくお願いいたします。

昨年書いたやつ: [IoTの台風の目!?EnOceanについて本気出して語ってみた](https://qiita.com/a-yoshino/items/29c34795c87ad9f21665)

## モチベーション & アイディア

突然ですが皆さん、家を出た時に「スマホ忘れた!家帰るのめんどい!!」的な絶望感に襲われた経験ありませんか。私はしょっちゅうあります。
常々このよ

元記事を表示

OTHERカテゴリの最新記事