• Skip to main content
  • Skip to primary sidebar

学習記録

プログラミング

グローバル変数の設定

2018年9月7日 by 河副 太智 Leave a Comment

自作関数の外部、内部のどちらで変数を宣言するかによって
使用できる範囲が異なる

1
2
3
4
5
6
name = "max"
def get_name():
    name = input("Your name:")
    
get_name()
print(name)

1
2
3
>>>
Your name:Michael
max

 

上記の例では自作関数の外部でname=maxが宣言されているので
自作関数内部で別の変数が代入されたとしてもそれは
自作関数内部でのみ有効となるのでコードの最後でprintで変数name
を呼び出しても最初に宣言したmaxが表示される事になる

 

コードの最後のprintの部分で自作関数内で設定された変数の値を
反映させるには自作関数内部でglobal nameと記述し、
変数nameはグローバル関数と宣言する
そうすればコードの最後の部分のprintでは自作関数内で上書きされた
変数の内容が反映される事になる

1
2
3
4
5
6
7
name = "max"
def get_name():
    global name
    name = input("Your name:")
    
get_name()
print(name)

アウトプット
1
2
3
>>>
Your name:Michael
Michael

 

Filed Under: python3

Blockchainプログラミング基礎:ユーザー入力

2018年9月4日 by 河副 太智 Leave a Comment

ユーザー入力値をブロックチェーンに追加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
blockchain=[]
 
def get_last_blockchain_value():
    return blockchain[-1]
 
def add_value(transaction_amount,last_transaction=[1]):
    blockchain.append([last_transaction,transaction_amount])
 
tx_amount = float(input("your transaction amount please: "))
add_value(tx_amount)
 
tx_amount = float(input("your transaction amount please: "))
add_value(last_transaction=get_last_blockchain_value(),transaction_amount=tx_amount)
 
tx_amount = float(input("your transaction amount please: "))
add_value(tx_amount,get_last_blockchain_value())
 
print(blockchain)

実行するとyour transaction amount please:と出てくるので
任意の数値を入力していきます。

 

>>>
your transaction amount please: 2.5
your transaction amount please: 8.6
your transaction amount please: 5.2
[[[1], 2.5], [[[1], 2.5], 8.6], [[[[1], 2.5], 8.6], 5.2]]

 

ユーザー入力を自作関数化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
blockchain=[]
 
def get_last_blockchain_value():
    return blockchain[-1]
 
def add_value(transaction_amount,last_transaction=[1]):
    blockchain.append([last_transaction,transaction_amount])
    
    
def get_user_input():
    return float(input("your transaction amount please: "))
 
    
tx_amount = get_user_input()
add_value(tx_amount)
 
tx_amount = get_user_input()
add_value(last_transaction=get_last_blockchain_value(),transaction_amount=tx_amount)
 
tx_amount = get_user_input()
add_value(tx_amount,get_last_blockchain_value())
 
print(blockchain)

>>>
your transaction amount please: 1.3
your transaction amount please: 5.8
your transaction amount please: 5.6
[[[1], 1.3], [[[1], 1.3], 5.8], [[[[1], 1.3], 5.8], 5.6]]

 

Filed Under: ブロックチェーン

条件を満たす値のみをデータフレームから取得

2018年9月3日 by 河副 太智 Leave a Comment

以下のようなcsvファイルがあった場合

1
2
3
4
Name  Salary  Age
0    John   50000   34
1   Sally  120000   45
2  Alyssa   80000   27

年齢が30以上の人のデータのみを取得した場合は

1
2
aaa = df["Age"] > 30
print(df[aaa])

以下のように年齢が30以上のデータが表示されます。

>>>
Name Salary Age
0 John 50000 34
1 Sally 120000 45

 

True か Falseですべての情報をチェックしたい場合は
以下のようなコードになります。

1
2
aaa = df["Age"] > 30
print([aaa])

>>>
[0 True
1 True
2 False
Name: Age, dtype: bool]

Filed Under: Pandas Tagged With: pandas, 指定, 条件

Blockchainプログラミング基礎:値を追加していく

2018年9月3日 by 河副 太智 Leave a Comment

ブロックチェーンに値を追加していく

ブロックチェーンは過去のデータを参照しつつ
新たなデータを追加していきます。

 

まずは一番最初のリストに数値1を入れます。

1
blockchain=[[1]]

これでblockchainというリストに数値1が格納されます。

 

次にブロックチェーンっぽく値を追加していきます。

1
2
3
4
5
6
7
blockchain=[[1]]
 
def add_value(value):
    blockchain.append([blockchain[-1],value])
    print(blockchain)
 
add_value(2)

>>[[1], [[1], 2]]

もとの1はそのままで、カンマ以降は最初のブロックチェーンにあった1と
新たに追加された2が格納されました。

 

もう一つ値を追加します。

1
2
3
4
5
6
7
8
blockchain=[[1]]
 
def add_value(value):
    blockchain.append([blockchain[-1],value])
    print(blockchain)
 
add_value(2)
add_value(0.9)

>>[[1], [[1], 2], [[[1], 2], 0.9]]

今度は3番目に0.9が追加されています。

わかりづらいので色分けカンマ別に縦表示にします。

[[1],
[[1], 2],
[[[1], 2], 0.9]]

 

同じ要領でもう一つ値を追加します。

1
2
3
4
5
6
7
8
9
blockchain=[[1]]
 
def add_value(value):
    blockchain.append([blockchain[-1],value])
    print(blockchain)
 
add_value(2)
add_value(0.9)
add_value(10.89)

>>>[[1], [[1], 2], [[[1], 2], 0.9], [[[[1], 2], 0.9], 10.89]]

ゴチャゴチャしてきましたね

カンマ別に縦表示にすると以下のようになります。

[[1],
[[1], 2],
[[[1], 2], 0.9],
[[[[1], 2], 0.9], 10.89]]

 

 

自作関数を2つに分けて
add_value()から別の自作関数
get_last_blockchain_value()を呼び出して
参照する過去の値と新規追加の値を別にする

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
blockchain=[[1]]
 
def get_last_blockchain_value():
    return blockchain[-1]
 
def add_value(transaction_amount):
    blockchain.append([get_last_blockchain_value(),transaction_amount])
 
 
add_value(2)
add_value(0.9)
add_value(10.89)
 
print(blockchain)

 

 

コードの最初にblockchain=[1]と定義してありますが
リストの最初の値が確定できない場合はblockhain=[]から始めたい
場合もあると思います。

その場合は以下のようにデフォルトを与える事でうまくいきます。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
blockchain=[]
 
def get_last_blockchain_value():
    return blockchain[-1]
 
def add_value(transaction_amount,last_transaction=[1]):
    blockchain.append([last_transaction,transaction_amount])
 
 
add_value(2)
add_value(0.9,get_last_blockchain_value())
add_value(10.89,get_last_blockchain_value())
 
print(blockchain)

 

Filed Under: ブロックチェーン

ATOMでコンソール

2018年9月3日 by 河副 太智 Leave a Comment

ATOM画面左下の+を押して、”ipython”と入力する

Filed Under: Python 基本 Tagged With: ATOM, ipython, コンソール

np.array はN次元配列を扱うためのクラス

2018年9月1日 by 河副 太智 Leave a Comment

数学の概念で言えば,1次元の場合はベクトルに,
2次元の場合は行列に,そして3次元以上の場合はテンソルに該当

1
2
3
4
5
6
7
8
9
10
11
12
In [1]: import numpy as np
 
In [2]: mylist=[1,2,3,4]
 
In [3]: np.array(mylist)
Out[3]: array([1, 2, 3, 4])
 
In [4]: mylist
Out[4]: [1, 2, 3, 4]
 
In [5]: type(mylist)
Out[5]: list

np.arrayでarrayに変換しても一時的にしか変換できていません

継続してarray型にするには変数に入れる必要があります。

1
2
3
4
5
6
7
In [6]: arr = np.array(mylist)
 
In [7]: type(arr)
Out[7]: numpy.ndarray
 
In [8]: arr
Out[8]: array([1, 2, 3, 4])

このようにすれば変数arrはいつまでもarray型をキープできます。

 

 

2次元配列とは以下のようなもので[[ と ]]のダブルカッコがあります

1
2
3
4
5
6
In [12]: np.zeros((2,20))
Out[12]:
array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
        0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
        0., 0., 0., 0.]])

np.zeros()の第一引数は列の数で第二引数は行の数となり
全て0で満たされます。

 

 

2次元配列から一を指定して値を取得する方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
In [20]: mat
Out[20]:
array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
       [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
       [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
       [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
       [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
       [70, 71, 72, 73, 74, 75, 76, 77, 78, 79],
       [80, 81, 82, 83, 84, 85, 86, 87, 88, 89],
       [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]])
 
In [21]: mat[5,2]
Out[21]: 52

 

カラム、列の値を縦一直線に欲しい場合は”:”を使う

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
       [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
       [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
       [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
 
       [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
       [70, 71, 72, 73, 74, 75, 76, 77, 78, 79],
       [80, 81, 82, 83, 84, 85, 86, 87, 88, 89],
       [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]])
 
 
In [23]: mat[:,2]
Out[23]: array([ 2, 12, 22, 32, 42, 52, 62, 72, 82, 92])

 

行の値を横一直線に欲しい場合は以下のようにする

1
2
In [24]: mat[2,:]
Out[24]: array([20, 21, 22, 23, 24, 25, 26, 27, 28, 29])

 

条件に合う値のみを抽出

1
2
3
4
5
In [25]: mat[mat>50]
Out[25]:
array([51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
       68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
       85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])

 

Filed Under: Numpy

  • « Go to Previous Page
  • Page 1
  • Interim pages omitted …
  • Page 7
  • Page 8
  • Page 9
  • Page 10
  • Page 11
  • Interim pages omitted …
  • Page 55
  • Go to Next Page »

Primary Sidebar

カテゴリー

  • AWS
  • Bootstrap
  • Dash
  • Django
  • flask
  • GIT(sourcetree)
  • Plotly/Dash
  • VPS
  • その他tool
  • ブログ
  • プログラミング
    • Bokeh
    • css
    • HoloViews
    • Jupyter
    • Numpy
    • Pandas
    • PosgreSQL
    • Python 基本
    • python3
      • webアプリ
    • python3解説
    • scikit-learn
    • scipy
    • vps
    • Wordpress
    • グラフ
    • コマンド
    • スクレイピング
    • チートシート
    • データクレンジング
    • ブロックチェーン
    • 作成実績
    • 時系列分析
    • 機械学習
      • 分析手法
      • 教師有り
    • 異常値検知
    • 自然言語処理
  • 一太郎
  • 数学
    • sympy
      • 対数関数(log)
      • 累乗根(n乗根)
    • 暗号学

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · Log in