3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

松尾研のDeep Learning基礎講座演習コンテンツをやってみた(Chap.1,2-Numpy)

Last updated at Posted at 2018-05-28

はじめまして。最近プログラミング学習を始めました。
ある程度は基本的な文法を学び終えたと思うので、以前かなり話題になっていた松尾研究室が公開している教材をやってみることにしました。(じつは過去にやろうとしてJupyterの存在を知らず断念したのはないしょ)

Chap1
さて、本教材のChapter1はpython文法の復習みたいなもので、まぁ言われたとおりに復習しました。
こういうのもあるんだなぁ、と思ったのは次の内包表記やzip関数

sample_data_list1 = [i * 2 for i in sample_data_list1 if i%2==0]
print(sample_data_list1)

for one, two in zip([1, 2, 3], [11, 12, 13]):
    print("", one, "&", two)

みたいな

#chap2
それで、Chap2に入るとNumpy、Scipy、Pandas、Matplotlibの基礎になりグッとデータサイエンスっぽくなってきた。
このへんは知らないことがたくさんあった。

まず前準備なんだけど

import numpy as np
import numpy.random as random
import scipy as sp
import pandas as pd
from pandas import Series, DataFrame
#可視化モジュール
import matplotlib.pyplot as plt
import matplotlib as mpl
import seaborn as sns
%matplotlib inline
#小数第3まで表示
%precision 3

jupyterのライン?上にmatplotlibで表示できるのとか表示する小数の位を指定するものとか、この一連のimportまわりは便利そうです。

# 次元数
print("次元数:",sample_numpy_data.ndim)

# 要素数
print("要素数:",sample_numpy_data.size)

#sort
sample_numpy_data.sort()/div>

そしてあたりまえのように次元数も教えてくれるしソートもしてくれるnumpyちゃん。

``` なお、降順(大きい数字から小さい数字)にしたい場合は、sample_numpy_data[::-1].sort()のように、スライスを使ってやります。[::-1]は、-1つずつ飛ばすという意味で、-1は逆からを意味するので、逆さから数字を1つずたどっていくことになります。 ``` はえーなるほど

#積み上げ計算

#積み上げ
print("Cum:",sample_numpy_data.cumsum())
# 積み上げ割合
print("Ratio:",sample_numpy_data.cumsum()/sample_numpy_data.sum())

cumsum()で積み上げ加算、それをsum()で割れば累積分布も出せる。

#numpyの正規分布の乱数発生

# 乱数の発生のためのモジュール読み込み
import numpy.random as random
__=random.randn(10)
N = 10**6
normal_sample_data = [random.random() for _ in range(N)]

基本はこれで、シードも設定できる。
あと

%%timeit

で実行時間表示してくれるんですね。知らなかった。

#dot積

# 行列の積
print(np.dot(sample_multi_array_data1,sample_multi_array_data2)) 
print(sample_multi_array_data1*sample_multi_array_data2)
#出力
[[ 42  45  48]
 [150 162 174]
 [258 279 300]]
[[  0  10  22]
 [ 36  52  70]
 [ 90 112 136]]

特になし

#練習問題

一応、私も解いたので載せますがきたねーですよ。

問題1 ``` %%timeit int_number=np.arange(1,51) print(np.sum(int_number)) ```
問題2 ``` import numpy.random as random random.seed(0) 正規分布(平均0、分散1)の乱数を10個発生 norm_random_sample_data2 = random.randn(10) print("乱数10個の配列:", norm_random_sample_data2) print(np.min(norm_random_sample_data2)) print(np.max(norm_random_sample_data2)) print(np.sum(norm_random_sample_data2)) ```
問題3 ``` 3の配列 three_data=np.ones((3,3),dtype='f')*3 print(three_data) three_square=np.dot(three_data,three_data) print(three_square) ```

今回はここまで

3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?