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

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

Seriesの生成

#概要
Pabdasのデータ構造の一つで、1次元の配列の配列のように扱う事が可能。
pandasをインポートし、**pandas.Series(辞書型のリスト)**とする事でSeriesを作成する。
また、**pandas.Series(データ配列, index=インデックス配列)**の様にデータとそれに関連付けたインデックスを指定する事でもSeriesを作成可能。

Seriesを出力した際に**dtype: int64**と出力されるのは、**Seriesに格納されている値が int64という型であること** を示している。
dtypeとはData typeの事でデータ型の事。(データが整数であれば**int**、小数があれば**float**)

##pandas.Series(辞書型のリスト)
“`python
import pandas as pd

fruits = {“banana”: 3, “orange”: 2}
print(pd.Series(fruits))
“`
![image.png](https://qiita-image-store.s3.ap-n

元記事を表示

オブジェクト指向プログラミングとは

# はじめに
どのプログラミング言語から勉強するにしても、共通して「コードはどう書くべきか」、つまり「どのようにソフトウェアを設計するべきか」という課題に直面するときがあると思います。私自身それについて考える機会があり、**「オブジェクト指向プログラミング」**というソフトウェアの設計手法に改めて向き合ってみました。考え方など、自身の中に落とし込むことに苦労したため、理解のプロセスを備忘録として残してみました。この記事はプログラミングの基礎をある程度理解している人であれば、全く問題なく読み進められるように作りましたので、是非最後まで読んでみてください。(コード解説はPythonを使用しました)

# コードはどう書くべきなのか
私たちは何か作りたいものがあるときに、コードを書き、実装していくと思いますが、特にチームを組んで開発するような大規模なプロダクトに関わるときには**「綺麗な、読みやすい」**コードを書くことが求められます。つまりプロダクトに関して、コードを書いた本人でなくとも、修正しやすい、新しい機能を追加しやすいといった**「効率性」**を目的としています。ではコードを書くと

元記事を表示

Databricks Connect: アプリケーション、マイクロサービスにApache Spark™の機能を

[Databricks Connect: Bringing the capabilities of hosted Apache Spark™ to applications and microservices \- The Databricks Blog](https://databricks.com/blog/2019/06/14/databricks-connect-bringing-the-capabilities-of-hosted-apache-spark-to-applications-and-microservices.html)の翻訳です。

この記事では、あらゆるノートブックIDEやカスタムアプリケーションからネイティブのApache Spark APIを利用できる新たなライブラリである[Databricks Connect](https://docs.databricks.com/user-guide/dev-tools/db-connect.html)をご紹介します。

# 概要

過去数年にわたって、Apache Spark向けに多くのカスタムアプリケーションコ

元記事を表示

DjangoでWebアプリ開発環境の構築(その②)

## はじめに
Webシステム開発をPythonでするために、新たにDjangoを学んでいる。
前回の記事では、インストールや起動の仕方など簡単なところをまとめたので、今回はその続きとして素材ファイルの配置やDB連携などについてまとめておく。

## 実行環境
【ローカルPC環境-OS】
  ・Windows 10 Pro 

【ソフト・パッケージ情報】
  ・Python3.9系 + Django3.2

## 手順

前提として、[**【DjangoでWebアプリ開発環境の構築(その①)】**]()の記事より、以下を完了していること。

– 仮想環境を作成してDjangoをインストール
– Djangoの起動
– サンプルアプリの起動

本記事では、以下の使い方を整理する。
1.STATICファイルの配置
2.DB連携
3.管理者画面からのDB操作

### 1.STATICファイルの配置
CSSやイメージファイルなどを配置しておく場所と、そのファイルなどの呼び出し方

#### 上位の【プロジェクト名】フォルダの直下に、以下の様にフォルダを作成し、適当なjpgファイルを格納

元記事を表示

ニューラルネットワークの初歩について学習

今回の記事では、ニューラルネットワークについて、Udemyの講座にて学習した内容を要約する。なお、本記事に掲載しているコードは、すべて下記URLに掲載しているUdemy講座から抜粋している

Udemy講座URL
[みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 【2021年最新版】](https://www.udemy.com/course/learning-ai/)

#目次

[1.ニューラルネットワークの概要](#1-ニューラルネットワークの概要)
[2.単純ニューロンの実装](#2-単純ニューロンの実装)
[3.外部データの導入](#3-外部データの導入)
[4.ニューラルネットワークの実装](#4-ニューラルネットワークの実装)

#1-ニューラルネットワークの概要

– ニューロン(神経細胞)を模したネットワーク
– (人工)ニューロン:複数の入力データをニューロンで変換し、出力する
– 各入力データとそれぞれの重みで積和演算を行う
– 求めた値に対して更にバイアス値を追加する
– 合計値を活性化関数で変換する
– ニューラル

元記事を表示

Tweepyで世界各地のトレンドを調べてみた。(Python初心者)

#はじめに
著者はPython初心者です。TwitterAPIに興味がある人、あまり使ったことが無い人の参考になればうれしいです。今回の記事ではTwitterAPIのアクセス権限がある前提で話を進めていくので、まだTwitterAPIで遊んだことがない人は前回の記事を参考にしていただければと思います。
https://qiita.com/tomo045/items/7aa50b45702f105bcee0

#動作環境
OS→Windows10、Pythonバージョン→3.7.8、コードの実行→Jupyter Notebook(VS Code)

#コード
“`Python:
import tweepy

#API認証の設定
API_KEY = “*********************”
API_SECRET = “*******************”
ACCESS_TOKEN = “********************”
ACCESS_TOKEN_SECRET = “***********************”

auth = tweepy.OAuthHandler

元記事を表示

PythonでAtCoder Beginners Selection 解答と感想

プログラミングを勉強してみようと思ったけど、普通にやっても続く気がしないのでゲーム感覚で競技プログラミングをやってみようと思った。
https://atcoder.jp/contests/abs

#Welcome to AtCoder
題名からして最初の一問
`input()`で入力を受け取って、`int()`で数値に変換して、`+`で足して、`print()`で出力するくらいかな。

~~~python3
A = int(input())
BC = input()
S = input()

B,C = BC.split( )

print(str(A+int(B)+int(C))+” ” + S)
~~~
#Product
*Welcome* *to* *AtCoder*よりも簡単そう
算術演算子の`+`と`%`、if文が使えれば特に難しいことはないかな
ここで`map()`を覚えてコードがより短くなった

~~~python3

A,B = map(int,input().split())

if (A*B % 2) == 0:
print(“Even”)
else:

元記事を表示

BERTで英検を解く

英検の大問1は、短文穴埋め問題になっています。例えば、こういう問題です。

>My sister usually plays tennis (   ) Saturdays.
 1. by  2. on  3. with  4. at

>Bob (   ) five friends to his party.
 1. made  2. visited  3. invited  4. spoke

文の中の隠された部分に入るものを、選択肢の中から答える問題です。文法的な判断もあれば、文脈から意味の通りが良い単語を選ぶ問題もあります。5級から1級まですべての難易度で出題される形式です。

この問題形式は、[BERT (Bidirectional Encoder Representations from Transformers)](https://en.wikipedia.org/wiki/BERT_(language_model))の学習アルゴリズム(のうちの1つ)とよく似ています。ということは、事前学習済みのBERTモデルで英検の問題は解けるのではないか、ということで実際に解いてみまし

元記事を表示

FastAPI × Stripe サブスクリプション登録を試す

## はじめに
サブスクリプション課金を行う際、Stripeを利用すると比較的簡単に課金が行えますが、DB上にある顧客の情報を使いたかったり、すでにサブスクリプション課金が行われている顧客に再度登録が走らないようにしたいなどの理由で、バックエンド側のAPIサーバーを絡めるケースはあるかと思います。

Stripeでサブスクリプション登録をするためには、以下3つの作業が必要になります。
1. Planを登録する
2. Customerを登録する
3. Subscriptionを登録する

これら3つについて、FastAPI経由での実装を試してみました。

## 事前準備
### FastAPI
[FastAPI公式](https://fastapi.tiangolo.com/ja/#_3)に従いアプリケーションの準備を行います。

### Stripe
[Stripe公式](https://stripe.com/jp)にてアカウント登録を行います。

登録を行うと、テスト環境が利用可能となります。
また、ダッシュボードの「商品」タブから商品登録を行います。この際料金情報の登録は不要です

元記事を表示

【python】テーブル定義を Backlog 記法の Markdown 形式で出力するスクリプトを作った

MySQL のテーブル定義を backlog の wiki にまとめる作業が発生したのですが、テーブル数が数百もあり1つずつ手作業でまとめていくのは大変なので、自動的に backlog 記法形式でテーブル定義を作成する python スクリプトを作成しました。

## 準備

ツールは GitHub にあがっていますので、 clone します。
https://github.com/kiyo27/export-table-definition

また、“docker“を使用しているので、開発マシンに “docker“ がインストールされている必要があります。

## テーブル定義をエクスポート

“docker run“コマンドでdocker コンテナを起動します。コンテナ起動時にエクスポート対象のデータベース情報を環境変数で渡します。

– “DATABASE“: データベース名
– “USER“: ユーザー名
– “PASSWORD“: パスワード
– “PORT“: ポート番号

“`bash
docker run -e DATABASE=blog

元記事を表示

【Serverless Framework】ローカル環境でAPI Gateway, Lambdaを再現する

# はじめに
APIの開発においてAWSの「API Gateway」と「Lambda」をよく使用されていると思います。
開発する上で、毎回デプロイしてからレスポンスを確認するのは手間がかかり効率的でないということで「Serverless Framework」およびそのプラグインである「serverless offline」を使用してローカルで開発できる環境を作ります。

## Serverless Framework とは
* サーバーレスなアプリケーションを容易に作成、管理、デプロイできるオープンソースなフレームワーク(Node.js製)。
* AWSだけでなく、AzureやGCPなど様々なクラウドサービスに対応している。
* `serverless.yml`に各種設定を定義する。

## serverless offline とは
* Serverless Frameworkで使えるプラグイン
* ローカル環境でAPI Gateway + Lambda の処理を再現してくれる

# 実施内容
本番環境で**API GatewayへのリクエストをトリガーにしてLambdaで定義した関

元記事を表示

挿入順を覚えている連想配列

# これは何?

Ruby の Hash には shift があることの紹介。
と思って調べたら、 Python3 の `dict` にも順序があるのがあったので、それも紹介。

# Ruby の Hash

Ruby の Hash は挿入順を覚えている。
挿入順を利用して古いものから順に取り出せる。
以下のような感じ。

“`ruby:ruby
h={foo:111,bar:22,hoge:3}
h[:bar]=44
h[:baz]=55
s=””
while ! h.empty? do
s += h.shift.inspect
end
p s #=> “[:foo, 111][:bar, 44][:hoge, 3][:baz, 55]”
“`

先頭の値を見る `first` と、先頭の値を撤去する `shift` はあるけど、末尾を扱う `last` と `pop` は無い。

“`ruby:ruby
{a:1}.first #=> [:a, 1]
{a:1}.last #=> NoMethodError: undefined method `last’
{a:1}.

元記事を表示

【GCP】Kubeflow Pipelinesを使った機械学習パイプラインの自動化

#はじめに
初めてのQiitaへの投稿です。独学で半年間、機械学習やGCPについて学習した物のアウトプットとして記事を書きました。間違いなどございましたら、ご指摘いただけると幸いです。

 この記事では、Kubeflow Pipelinesを用いた機械学習パイプラインの自動化について記述します。[Courseraの講座](https://www.coursera.org/learn/mlops-fundamentals?specialization=preparing-for-google-cloud-machine-learning-engineer-professional-certificate)をベースにしました(当該GitHubレポジトリは[こちら](https://github.com/yaginu/mlops-on-gcp/tree/master/workshops/kfp-caip-sklearn))。MLOpsについては、[GCPのドキュメント](https://cloud.google.com/architecture/mlops-continuous-deli

元記事を表示

【Python】所得税の算出方法をプログラム化してみた

#所得税の算出方法をプログラム化してみた

フリーランスの税金を調べるついでにコードで遊んでいました。
ずっと勉強しているとアウトプットしたい欲にかられます。
特に使い道はないです。
法改正されてて情報が古くなる可能性はあります。

#算出方法について
オフィシャルを参考に
[国税庁No.2260 所得税の税率](https://www.nta.go.jp/taxes/shiraberu/taxanswer/shotoku/2260.htm)

所得税の算定基礎となる所得金額=収入-必要経費-各種控除
これに金額に応じた税率が適用されて、さらに控除額が引かれたものが所得税になります。
さらに令和19年までは、ここから復興特別所得税として2.1%が追加で課税されます。

#実装

まずは定番のものをインポートします。
作成後にグラフで確認するので、そのためのフォーマットも追加します。

“`Python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.ticke

元記事を表示

「咳カウンター」システムを作ってみた(PC側ソフトウェア編)

![咳カウンター 装着イメージ2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1773386/a92f3622-9ab1-296f-60d0-524b31a42a7e.jpeg)

前回は「咳カウンター」システムの機能紹介と、記録モジュール側のハードとソフトの
内容を紹介しました。

**前の記事:[「咳カウンター」システムを作ってみた(機能紹介と記録モジュール編)](https://qiita.com/sho2-ykym/items/94ef0680b5669b63a6d7)**

今回はPC側で作成した以下の2つのツールについて紹介します。

1.加速度データをグラフ化するツール
2.咳を認識して時間帯毎のヒストグラムを作成するツール

##0.開発環境(2つのツールで共通です)

* プログラミング言語:Python3.7

 開発環境はAnacondaを利用して構築し、Spyder(Pythonの統合開発環境)で開発しました。
 環境構築に際しては [**ここ**](https://www.

元記事を表示

「咳カウンター」システムを作ってみた(機能紹介と記録モジュール編)

## 1.はじめに
喘息持ちで主治医から咳や咳払いの状況を毎日記録するように言われているので、
趣味と実益を兼ねて「咳カウンター」とでも言うシステムを作ってみました。
ここでは自分の製作記録として2つの記事に分けて紹介します。
![咳カウンター 装着イメージ2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1773386/06d3c3ef-7bcd-9856-986d-1a71014d91ff.jpeg)

## 2.システム全体の構成と機能概要

システム全体は喉元に貼り付ける加速度センサ部、携帯型の記録モジュール部、そして
PC側の処理とで構成されています。

記録モジュールは身に着けて使うのでできるだけ薄く小さくする為にミンティアケースに
入れる事を目標に作りました。それを100円ショップのIDカード入れに入れて首から
ぶら下げて、喉元に貼り付けた加速度センサ部からのZ軸加速度データ(喉に垂直方向)
をSDカードへ記録します。

PC側では測定した加速度データをグラフ化するツールと、咳を認識し

元記事を表示

[Python]等差数列×等比数列の解を求めてみた[備忘録]

# はじめに
Pythonでコーディングを行ったので、備忘録として残します。
Python環境下にて、是非お使いください。

# コーディング
“`py
#sympy内の関数を使用
from sympy import *
n=Symbol(“n”)
a,b,c = map(int,input(“a,b,c=? ? ?”).split())
while c==0:
print(“Input a,b,c except c==0”)
a,b,c = map(int,input(“a,b,c=? ? ?”).split())
Prog = sequence((a*n+b)*c**n, (n, 0, 20))

#以下、出力(例:a,b,c=1 1 2)
print([int(N) for N in Prog])
print(Prog[3])
“`
>出力結果
[1, 4, 12, 32, 80, 192, 448, 1024, 2304, 5120, 11264, 24576, 53248, 114688, 245760, 524288, 1114112, 2359296,

元記事を表示

【ImageJからPythonへ】napariの使い方 (1)

# はじめに

ImageJ/Fijiにはしばらくお世話になっていたのですが、`scipy`や`scikit-image`、機械学習関連などといったPythonの豊富なライブラリが利用できず、何か実装したかったらJavaで書くしかありません。これは、実験者と開発者の分断を助長する、あまりにもよろしくない事態です。加えて、ImageJとExcelを行き来せざるを得なかったり、ウィンドウが増えすぎたりと、使っていてかなり不便だと感じる場面が少なくないと思います。

この現状を打破するべく調査していて行きついたのが`napari`という素晴らしいPythonのライブラリでした。これがあれば、**すべての解析をPythonで統一できます**。ぜひ知ってもらいたいので、複数回に分けてまじめに紹介していこうと思います。

# 目次

– [napariとは](#napariとは)
– [napariでできること](#napariでできること)
– [インストール](#インストール)
– [基本操作](#基本操作)
– [スクリプトからのレイヤーの追加](#スクリプトからのレイヤーの追加)
– [ス

元記事を表示

Atcoder ABC212 Python C問題振り返り

#前書き
C問題でACできなかったので今回も振り返っていきます。
Atcoder Factsという問題ごとの正解率をレート帯ごとに出してくれるサイトを見たところ、200-399のレートにいる人達の正解率が63.85%だったので解けるようにしておきたいですね…

#自分の提出(TLE)
ソートするところまでは良かったのですが、その後でどうすればよいか全く浮かびませんでした。

“`python:
N, M = map(int,input().split())
A_2 = list(map(int,input().split()))
B_2 = list(map(int,input().split()))

A = sorted(A_2)
B = sorted(B_2)

ans = 0

if A[-1] <= B[0]: ans = B[0] - A[-1] print(ans) exit() elif B[-1] <= A[0]: ans = A[0] - B[-1] print(ans) exit() flg = [] Ans = []

元記事を表示

Databricks(Spark)にてDelta Lake形式・Parquet形式でAnalyze Tableを実行した際に格納されるデータの調査結果

## 概要
Databricks(Spark)にてDelta Lake形式・Parquet形式でAnalyze Tableを実行した際に格納されるデータの調査結果を共有します。Analyze Table実行後に、Hive Metastoreデータベース(MySQL)のTABLE_PARAMSテーブルとPARTITION_PARAMSテーブルにデータが格納され、Sparkから`DESC EXTENDED`により確認できます。

統計情報の種類としては3種類あり、Delta Lake形式では、パーティションの統計情報をサポートしていないようです。ただ、Sparkにてパーティションの統計情報がどのように利用されるかを確認できませんでした。

1. テーブルの統計情報
1. カラムの統計情報
1. パーティションの統計情報

Sparkの統計情報に関しては下記の資料が参考になります。
[

  • OTHERカテゴリの最新記事