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

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

Pythonで時刻同期(Windows)する

#使用する技術
– ctypes

– PythonでC/C++の共有ライブラリを使用することができるライブラリ。

#必要条件
– 管理者権限での実行

#サンプルソース
“`Sample.py
# coding: Shift_JIS
from ctypes import Structure, windll, pointer
from ctypes.wintypes import WORD

# 時刻同期関数に渡してあげるための構造体を作成する。
class SYSTEMTIME(Structure):
_fields_ = [
(‘wYear’, WORD),
(‘wMonth’, WORD),
(‘wDayOfWeek’, WORD),
(‘wDay’, WORD),
(‘wHour’, WORD),
(‘wMinute’, WORD),
(‘wSecond’,

元記事を表示

プログラミング始めて2ヶ月の初心者が日本の実質GDPをSARIMAモデルで時系列分析してみた

#[さいしょに]
 貴重な時間を割いて、記事を読んでくださってありがとうございます!!

 まず自己紹介からさせていただきます!私は隙間時間にPythonの学習を楽しんでいる社会人

です。

プログラミングどころかPCについてもチンプンカンプンだった私は先月の9月1日からPythonの勉強を

Progate,PyQ,Aidemyで始めて今に至るので、プログラミングをしだして約2ヶ月経ったことになります。

Aidemyのデータ分析コースを一通り学んできたのでアウトプットしたいと思い、この記事を書くことにしました。

###誰に読んでもらうことを想定した記事か?
仕事をしながら、学校に行きながらなど、大量にはプログラミング学習に時間を確保できないけれども、プログラ

ミング学習をしたいと考えているプログラミング初心者の方です。上に書いた自己紹介の通り、私もプログラミン

グ初心者です。そのため読者様が約2ヶ月で、どれくらいのことが出来るかのサンプルの一つにでもしてくだされ

ば嬉しいです。

###環境
Python3
MacBookAir
Jupyter Notebook

#[

元記事を表示

【Udemy Python3入門+応用】  69. 絶対パスと相対パスのImport

**※この記事はUdemyの
「[現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル](https://www.udemy.com/course/python-beginner/ “現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル”)」
の講座を受講した上での、自分用の授業ノートです。
講師の[酒井潤](https://twitter.com/sakaijun “酒井潤”)さんから許可をいただいた上で公開しています。**

## ■フォルダの中のものをimportする
こんな風にディレクトリとファイルを用意する。

“`
lesson_package
└ talk
├ __init__.py
└ human.py
lesson.py
“`

“`python:human.py
def sing():
return ‘sing’

def cry():
return ‘cry’
“`

“`python:lesson.py
from lesso

元記事を表示

【Linux】管理者権限なしでPython3をインストールする

学校のサーバーでPythonのモジュールインストールしようとしたら出来なかったので、ローカルにPythonごとインストールしました。

1.ホームディレクトリにディレクトリ(ここでは src )を作成、移動。
  [ cd /ホームディレクトリ/src ]

2.wgetコマンドでPythonをダウンロード。
 [ wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz ]

3.解凍。
  [ tar xvzf Python-3.6.3.tgz ]

4.makeする。
 configure でインストール場所を指定(ここでは /ホームディレクトリ/local/)。
  [ cd Python-3.6.3 ]
 [ ./configure –prefix=/ホームディレクトリ/local/python ]
 [ make ]
 [ make install]

5.パスを通す。
 [ vi ~/.bash_profile ]

  以下の文を追記。
 [ export PATH=$PATH:/ホームデ

元記事を表示

pipのパッケージを一括アップデート

– アップデート

“`bash
python3 -m pip list -o | tail -n +3 | awk ‘{ print $1 }’ | xargs python3 -m pip install -U
“`
– アップデートによって壊れた依存関係を修復

“`bash
python3 -m pip check | tail -n +1 | awk ‘{ print $1 }’ | xargs -I{} sh -c ‘if [ {} != “No” ]; then python3 -m pip install -U {}; else exit; fi’
“`

元記事を表示

Numpy1.19.4のエラー RuntimeError: The current Numpy installation fails to pass a sanity check due to a bug in the windows runtime.

Numpyを使おうとしたら見慣れないエラーに遭遇しました.意外とあっさり解決できましたが,遭遇する方が多そうなので一応残しておきます.

# 環境
– Windows10
– Python 3.8.2
– Numpy 1.19.4

# エラー

“`sh
RuntimeError: The current Numpy installation (‘C:\\Users\\ … \\venv\\lib\\site-packages\\numpy\\__init__.py’) fails to pass a sanity check due to a bug in the windows runtime. See this issue for more information: https://tinyurl.com/y3dm3h86
“`

# 解決法

調べてみるとStackOverFlowに[同じエラーについての質問](https://stackoverflow.com/questions/64654805/how-do-you-fix-runtimeerror-packag

元記事を表示

[翻譯] 構造化された並行処理に関するメモ..というかgo文は有害と思われる

– 著者 [Nathaniel J. Smith](https://vorpus.org/)
– 原文 [Notes on structured concurrency, or: Go statement considered harmful](https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/)
– 原文の投稿日時 2018年04月25日

# 本文

並行処理のAPIには当然コードを並行して走らせる手段がある。以下に様々なAPIの例を載せるので見て欲しい。

“`
go myfunc(); // Go言語

pthread_create(&thread_id, NULL, &myfunc); /* C言語 と POSIX threads */

spawn(modulename, myfuncname, []) % Erlang

threading.Thread(t

元記事を表示

Python 3.8.6をpyenvを使ってmacOS BigSur にインストールする

# 問題
* macOS BigSur 11.0 beta
* Xcode 12.2 beta 3
* Command Line Tools for Xcode 12 beta 3

上記の環境で`pyenv install 3.8.6`を実行すると、下記のようにビルドに失敗する

“`:$
..
BUILD FAILED (OS X 11.0 using python-build 20180424)
..
“`

# 解決策

## Step1: コマンドラインツールの設定
1. `Xcode-beta.app` を開く
2. Preference > Locations
3. Command Line Tools を 目的のバージョンに変更
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331415/7b03ed41-3ec4-995f-3537-ea23afdfeeaf.png)

## Step2: インストール
シェルで下記を実行

“`:$
LDFLAGS=”-L

元記事を表示

zsh環境のAnacondaをアンインストールする

# やること

以前`Jupyter Notebook`学習用にインストールした `Anaconda`環境がいらなくなったので、
アンインストールしていきます。

今後しばらくはPython環境を`pyenv`と`pipenv`で管理するようにするので、その前提のお片付けです。

zsh環境といってもやることはbashと一緒です。

# 手順
Step1: `anaconda-clean`をインストール
Step2: `anaconda-clean`を実行
Step3: ライブラリの実体をフォルダごと削除
Step4: zsh, bashに通っていたパスを削除

## Step1: `anaconda-clean`をインストール
condaのライブラリが生成したデータファイルを自動で削除を行うパッケージをインストールします。

“`:$
conda install anaconda-clean
“`

途中インストールしてもいいか確認がでるので `y`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazona

元記事を表示

Pythonで湯婆婆を実装してみる

Twitterで否定的なコメントが見受けられたため記事を移動しました。
https://shimotukirio.hatenablog.jp/entry/2020/11/06/143626

元記事を表示

Youtube Data API使って動画検索してみた(初心者)

# はじめに
データ分析の勉強はインプットも大事だけど実践が1番ってことで、練習になるいいデータはないかなーと思っていました。Youtubeのデータがいいものなのかは、正直今の僕には判断ができません。でも、よくYoutube見るし、興味のある分野なので**「Youtube Data API」**を使って分析用のデータ抽出ができるようになることを目標に使い方をまとめてボチボチまとめて行こうかと思います。APIの学習には以下のページ(APIリファレンス)を利用しました。
[https://developers.google.com/youtube/v3/docs?hl=ja](https://developers.google.com/youtube/v3/docs?hl=ja)

# 検索処理
今回は手始めに以下の条件で動画を検索し、結果をcsvファイルに出力します。

– 指定したキーワードで動画を検索(キーワードは第1引数で指定)
– 検索結果は再生回数で降順に表示

また、検索結果の動画がどのチャンネルのものかを度数分布化し、csvファイルに出力します。

# ソースコード
ソース

元記事を表示

DNA配列を相補鎖にするpythonコード どのやり方が速いのだろう?

#はじめに
pythonでDNAを相補配列に変換する関数を作ってみます。4通り作ってみてどれが早いか比較してみます。

#相補鎖にするということ
AはTに、CはGに、GはCに、TはAに変換します。その上で並び方を逆にします。
ACGTTTTTの相補配列はAAAAACGTです。
#ACGT以外もある
RはAまたはGのことです。YはCまたはTのことです。DはC以外(つまりAかGかT)。大文字と小文字もあります。

DNA配列の長さは例えば10 Mb(1000万塩基)などです。

#辞書
置き換え方法を指定する辞書を作ります。

“`py
compDic = {“R”:”Y”,”M”:”K”,”W”:”W”,”S”:”S”,”Y”:”R”,”K”:”M”,”H”:”D”,”B”:”V”,”D”:”H”,”V”:”B”,”N”:”N”,”A”:”T”,”C”:”G”,”G”:”C”,”T”:”A”,”r”:”y”,”m”:”k”,”w”:”w”,”s”:”s”,”y”:”r”,”k”:”m”,”h”:”d”,”b”:”v”,”d”:”h”,”v”:”b”,”n”:”n”,”a”:”t”,”c

元記事を表示

GCPのCloud Shell EditorでPythonの開発環境ぐちゃって詰んだので更地にして再構築したらなんとかなった件

# 概要

2019年末くらいからGCPのCloud Shell上でPython開発してCloud Functionにデプロイする作業してました。
ある程度開発終わって数ヶ月放置した後、最近新しい開発案件が発生したのでちょろっといじってデプロイしてテストするかーと思ったらデプロイ時に色々エラーを吐き始めてしまいます。
エラー見つつ対処進めたけどまあうまくいかず、最終的に環境リセットしたらうまく行ったのでまとめます。

Pythonとpipのアップデートとバージョン切り替えが一番手詰まりポイントでした

# 手順

1. バックアップをとる
2. 公式の手順にしたがって環境をリセットする
3. Pythonをpyenvでアップデートする
4. pipをpip3に切り替えてアップデートする
5. 公式の手順にしたがってgcloudをアップデートする
6. 作業ファイルを復元する
7. requirements.txtから更新する
8. あとはdeployして適宜バグを潰す

## 1. バックアップをとる
`pip freeze > requirements.txt`でインストール済みパッ

元記事を表示

AWS lambda を使ってTwitterに定期投稿しよう!

# 概要
AWSのLambdaを使ってTwitterに定期投稿できればいろいろ応用できそうで便利だなと思ったのでまとめてみました。
![スクリーンショット 2020-10-16 23.34.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432257/4de65f42-0a02-5685-7f27-741202278446.png)

# 作成手順
## 作成の流れ
1. Dockerで環境構築
2. PythonからTwitter投稿

## 詳細
### 1.DockerでLambdaの環境構築
lambadaで標準以外のライブラリーを使うためにDocker を使いました。
lambdaでdockerを使うには[lambci/docker-lambda](https://github.com/lambci/docker-lambda)使うと便利です。
こちらの記事が参考になりました。
[AWS Lambda x Pythonでのローカル開発環境の再現について](https://qiita.com

元記事を表示

Chainerチュートリアル Step1演習問題の解答1 

##背景

データサイエンスを始めるにあたり、[Chainer Tutorial](https://tutorials.chainer.org/ja/tutorial.html)をやりました。
初学者にもわかりやすい文章で、数学やpythonの基本から教えてくれるので、機械学習の入門にはおすすめだと思います(しかも無料!)。
準備編の最後に演習問題がついていますが、復習がてら解答をまとめ、投稿しようと思った次第です。

Chainerチュートリアル Step1演習問題の解答1(本記事) → 問題2, 4
Chainerチュートリアル Step1演習問題の解答2 → 問題5, 6

##問2.1(組み込み関数)

“`python

a = [4, 8, 3, 4, 1]

#リストaの長さを求める
res = len(a)
print(res)

#リストaに含まれる値の最大値を求める。
res = max(a)
print(res)

#リストaに含まれる値の最小値を求める。
res = min(a)
print(res)

#リストaに含まれる値の合計値を求める。
res = s

元記事を表示

そもそもPythonで依存性逆転の原則(DIP)を実現できるのか?

# はじめに

最近設計やアーキテクチャについて悩むことが多いのですが、動的型付き言語であるPythonでも依存性逆転の原則について実現できるのかについて自分なりの意見を書いてみました。私の意見が絶対正しいというわけではないのですが、少しでも参考になれば幸いです。

※Pythonの解説記事ですがC++のコードも出てきますのでご了承ください(内容は難しくありません)

# ポリモーフィズムとは?

まず、依存性逆転の原則を理解する前に**ポリモーフィズム**についての理解が必要です。
説明をWikipediaから引用します。

> ポリモーフィズム(英: Polymorphism)とは、プログラミング言語の型システムの性質を表すもので、プログラミング言語の各要素(定数、変数、式、オブジェクト、関数、メソッドなど)についてそれらが複数の型に属することを許すという性質を指す。ポリモルフィズム、多態性、多相性、多様性とも呼ばれる。

内容が分かりにくいので詳細に解説します。本質は「**それらが複数の型に属することを許すという性質を指す**」の部分です。Pythonなどの動的型付き言語の場合は

元記事を表示

Codility lesson time complexity と 自分の回答メモ (Python)

#Task: Maxcounters
個人の感想です。

##①Speed N*M

def solution(N, A):
anslist = [0] * N
maxvalue = 0
for i in A:
try:
anslist[i-1] += 1
except:
maxvalue = max(anslist)
anslist = [maxvalue] * N
return anslist

#####感想と学び
毎回tryの中でmaxやるとN*2になってしまうと思ったので、
必要な時だけ限定してmaxすることを試みた。が、当然ながらN+1の登場頻度に依存してしまうのでN*Mになるよなと。納得。

##②Speed: N+M

def solution(N, A):
anslist = [0] * N
maxchecker =

元記事を表示

画像認識の環境構築とOpenCV基礎

PCをしょっちゅう初期化するため、(あと普段別の業務をしていることもあってかなり忘れっぽいこともあり)画像認識用の環境構築を自分用の備忘録として残します。
minicondaを使用してpythonでOpenCVで簡単な画像認識の処理ができる環境構築をします。

概要

+ minicondaで仮想環境を作成
+ jupyter notebookを使用
+ 画像認識の基礎部分(OpenCVについて)

##minicondaで環境構築
####miniconda をダウンロード
Anacondaでもいいですが、低スペPCならminicondaをお勧めします。
デフォルトでインストールされているパッケージが少なく容量を食わないため。
https://docs.conda.io/en/latest/miniconda.html
次へ次へと進めていけばOK。特別な設定は不要です。

####Pytonの仮想環境を作成

“`conda:AnacondaPronpt
(base) >conda create -n py36 python=3.6

元記事を表示

AOJ プログラミング入門 トピック#7, トピック#8

#トピック#7
##[ITP1_7_A](https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/7/ITP1_7_A)
###成績

“`Python:Python
def PointCheck(m, f, r):
if m==-1 and f==-1 and r==-1:
return ‘End’
elif m==-1 or f==-1:
return ‘F’

if m==-1:
m=0
if f==-1:
f=0

if m+f>=80:
return ‘A’
elif m+f>=65:
return ‘B’
elif m+f>=50:
return ‘C’
elif m+f>=30 and r>=50:
return ‘C’
elif m+f>=30:
return ‘D’
else:

元記事を表示

PythonでPDFからOCR

#1.はじめに
素晴らしい先人達の真似をしてPythonでPDFからOCRするコードを書いてみた。
とを使います。
やってることは、PDFをpopplerでjpg化してからTesseract OCRでtxtファイルに文字起こし

初心者なので、コードに変なところあればコメに指摘もらえると嬉しいです。
引用していないサイトも、たくさん参考にさせていただきました。ありがとうございます。

#2.概要

こちらのサイトを参考に、フォルダ構成を以下の通りにしました。
[PythonでPDFを画像ファイル(JPEG、PNG)に変換する方法](https://gammasoft.jp/blog/convert-pdf-to-image-by-python/)

|親フォルダ|子フォルダ|
|:—|:—|
|¥カレント|¥image_file|
||¥pdf_file|
||¥poppler|
||¥txt_file|

※まずはフォルダにある古いファイルを削除

“`python
import os
import pathlib
from pathlib import Path
from

元記事を表示

OTHERカテゴリの最新記事