numpy_100(21-40) 2日目

昨日の復習も終わった

21 8×8のチェックボード配列(市松模様)をtile関数を用いて作成する。

  • np.tile関数:配列を複製してタイル状に並べた新しい配列を生成する関数

numpy.tile(A, reps)

  • reps:intのタプル;どの軸方向に何回配列を繰り返すかを指定

 

z = np.tile(np.array([[0,1],[1,0]]),(4,4))

 

22 5*5の乱数の行列を正規化する

  • 正規化:機械学習の際に過学習を防ぐ際に行われる重みを小さい値に保つ方法
  • スカラ値の四則演算はすべての要素に対して行われる

 

23 色を四個の符号なしバイト型(RGBA)で表現するカスタムdtypeを作成する

  • RGBA:コンピュータで色を扱う際の表記法やデータ形式の一つ。色をRed,Green,Blueの強度と、透明度(A:Alpha)の組み合わせとして表現する。各要素がそれぞれ8ビット(256段階)の場合、一つの色を32ビット(約10億種類)のデータ量で表現する。

一旦どこに使うかも分からんし、深追いしないでおく、、、

 

24 5*3行列と3*2行列の掛け算

  • np.dot関数を使用することで、簡単にベクトルの内積や行列の積を計算できる
  • numpy.dot(a, b, out = None)
  • 第一、第二引数には内積や積を求めたいベクトルや行列を指定

z = np.dot(np.ones*1, np.ones((3,2)))

29 0から遠くなるように浮動小数点型の配列の小数点切り上げ方法は?

  • 符号関数:正の値に対して1、負の値に対して-1、0に対して0を返す関数
  • sign, signum, sgn関数などがある
  • np.sign()
    NumPy配列ndarrayの符号を取得
    負の値は-1、正の値は1、0は0となるnumpy.ndarrayが返される。

 

  • numpy.copysign(a,b):
    あるnumpy.ndarrayの符号を別のnumpy.ndarrayのものに置き換えることができる。第一引数の符号が第二引数の符号に置き換えられる。

 

  • np.abs(a):
    配列aの各要素に対して、絶対値を取った配列を作る関数

 

  • np.ceil(a)
    浮動小数点数floatのNumPy配列ndarrayの小数点以下を切り捨てたり切り上げる。正の無限大への丸め。

 

30 2つの配列に共通する値の見つけ方は?

複数の集合の共通部分の抽出の方法

np.intersect1d(a,b)

 

32 以下の式は正しいですか?

np.sqrt(-1) == np.emath.sqrt(-1)

  • np.sqrt(a):
    ・引数のルート(平方根)を計算する
    ・引数aが正の実数の場合;正の実数で返す
    ・引数aが負の実数の場合;nanで返す

    → np.emath.sqrt() は引数が負の実数の場合にも複素数を返す

    ・引数aが複素数の場合;負の実数が含まれている場合も計算結果を複素数で返す

33 昨日、今日、明日の日付の取得方法は?

datetime64:

  • 日時機能をネイティブにサポートするコア配列データ型のこと
  • Unixエポック(1970年1月1日の00:00:00 UTC)を基準にしたオフセットによって整数から日時を作成することもできる
  • 文字列の形式から自動的に選択され、日付や時間のいずれかになる
  • timedelta64を用いて2つの日時値を減算できる

 

38 10個の整数を生成する関数を考える

yield:

  • 基本的に関数の中で用いられ,一旦関数内の動作を一時停止して値を返す。
  • 関数内の動作を停止して値を返すreturnと異なって,値を返した後,処理が再開されるのでメモリの消費が抑えられる。

numpy.fromiter(iterable, dtype, count=-1)

  • イテレート可能なオブジェクトから新しい1次元配列を作成する。
  • iterable;配列にデータを提供する反復可能なオブジェクト
  • dtype;配列を返すときの要素のデータ型を指定します。
  • count;アイテムの数

39 0,1を除く0から1までの値を持つサイズ10のベクトルを作成する

全体が等差数列であるベクトルを作成する方法

  1. arange
  2. linspace

 

 

 

 

 

*1:5,3

numpy_100(1-20) 1日目

numpy_100(1-20)の疑問点

4 配列のメモリーサイズ

  • メモリサイズ...コンピュータが使用するメモリの大きさのこと
  • numpy.ndarrayのサイズ(全要素数)は属性sizeで取得できる。
  • 配列の1要素の長さをバイト数で表します.

ndarray.itemsize

何のために使うのかよく分からない、、、今は置いとく

 

10 ゼロではない要素の添字を見つける

  • np.nonzero関数は、要素が0以外のインデックスを取得するシンプルな関数
  • この関数によって取得したインダイスは、配列の高度なスライスに使われる

nz = np.nonzero([1,2,0,0,4,0])

print(nz)

何のために使うのか分からないけど、一旦深追いはせずにおいておく

 

16 既存の配列の周囲を0で囲む方法は?

numpy.pad(array,pad_width,mode='constant',**kwargs)

 

  • 第1引数:配列
  • 第2引数:pad_width : {シーケンス、配列かそれに類するもの、整数}のいずれか
  • 第3引数のmodeは色々指定ができて、constantは標準

深追いしない、、、

 

18 対角成分の直下に1,2,3,4の成分を持つ5*5行列を生成する

  • 二次元のNumPy配列numpy.ndarrayの対角成分を抽出するにはnumpy.diag()関数を使う。
  • 引数k:開始地点
  •  正の整数を指定すると開始位置が右側(上側)に移動
  •  負の整数は開始位置が左側(下側)に移動

何に使うか分からんけど、とりあえず、、、

 

19 8*8の行列を生成して、市松模様で埋める

  • スライシングはstart: end: stepという形式
  • 省略した場合はstart=0end=-1step=1
  • startを省略する場合は:stop:step
  • endを省略する場合は、start::step
  • stepを省略する場合はstart:stop

 

20 shape属性が(6,7,8)の配列の時、100番目の要素の添字(x,y,z)は?

numpy.unravel_index(indices, dims)

  • indices(インデックス)は前から数えた時の数を表す整数
  • dimsは次元(Dimension)を表すタプル

    np.unravel_index(100,(6,7,8))

     


     

 

 

 

はじめに

はじめに

主にこのサイトは自分自身の技術記録等に用います。

現在データサイエンスを勉強しており、記録や執筆技術向上のためにブログを始めました。続くかどうかも分からないので、無料で始められるこちらのサイトを利用しようと思いました。

 

目標

色々なことを勉強していますが、少なくとも7月末までにnumpy,pandas,python,scikit-learn の勉強を終わらせます。