Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |
2018 | 02 | 03 | 04 | 05 |

2018-05-03(Thu)

Windows 10 April 2018 Update 適用

今回は、前回のような問題も発生せず、すんなり終了。

  • 今回も、Change Keyで設定したキー入れ替え設定がクリアされずに残っていた。
  • Windowsのoldフォルダ分を考慮しても空き領域がどんどん減ってきている。そろそろPCの買い替えも考えた方が良いかもしれない。

2018-04-06(Fri)

python - numpyの初歩

numpyの基本的機能確認

python のバージョンは 3.6.4

import numpy as np

# listとndarrayの相互変換
a = [[1,2],[3,4]]
b = np.array(a)
print(repr(b)) # array([[1,2],[3,4]])
c = b.tolist()
print(c)       # [[1,2],[3,4]]

# データ型
print(b.dtype)  # int32
# 次元
print(b.ndim)   # 2
# 要素数
print(b.size)   # 4
# 行列数
print(b.shape)  # (2, 2)

# ndarrayの生成
a = np.arange(8, dtype=int) # end, type
print(repr(a))        # array([0, 1, 2, 3, 4, 5, 6, 7])
a = np.arange(1,19,2) # begin, end, step
print(repr(a))        # array([ 1,  3,  5,  7,  9, 11, 13, 15, 17])

# 行列構成変更
b = a.reshape((3,3))  # tupleで指定
print(repr(b))        # array([[1, 3, 5],[7, 9, 11],[13, 15, 17]])

# スライス
print(b[0])        # [1,3,5]
print(b[0][0])     # 1
print(b[0,0])      # 1
print(b[0][:2])    # [1,3]
print(b[1:])       # [[7, 9, 11],[13, 15, 17]]
print(b[1:][:2])   # [[7, 9, 11],[13, 15, 17]] これは上手くいかない


# 等間隔な数列
a = np.linspace(0,2,5)# start,end,size
print(repr(a))        # array([0. , 0.5, 1. , 1.5, 2. ])
a = np.linspace(0,2,5,endpoint = False)
print(repr(a))        # array([0. , 0.4, 0.8, 1.2, 1.6])

# 乱数
a = np.random.random(4) # 要素数(0 <= n < 1.0)
print(repr(a))          # array([0.44478423, 0.87792819,
                        #        0.35577869, 0.05965164])
a = np.random.randint(0,10,5) # begin,end,size
print(repr(a))          # array([7, 5, 8, 0, 1])

# ソート
b = np.sort(a)
print(repr(b))          # array([0, 1, 5, 7, 8])
b = np.sort(a)[::-1]    # 降順
print(repr(b))          # array([8, 7, 5, 1, 0])

c = np.argsort(a)       # index順を返す
print(repr(c))          # array([3, 4, 1, 0, 2], dtype=int32)
print(repr(a[c[:]]))    # array([0, 1, 5, 7, 8])
                        # indexを参照してソート

# 多次元ソート
a = np.random.randint(0, 10, (3,2))
print( repr(a) )           # array([[4, 0],[8, 3],[1, 5]])
print( repr( np.sort(a) )) # array([[0, 4],[3, 8],[1, 5]])
                           # axis=-1で各行を個々にソート
print( repr( np.sort(a, axis = 0) )) 
                           # array([[1, 0],[4, 3],[8, 5]])
                           # 各列を個々にソート

# 四則演算
a = np.array([1,2,3])
b = np.array([4,5,6])
print( repr(np.add(a,b)) )       # array([5, 7, 9])
print( repr(np.subtract(a,b)) )  # array([-3, -3, -3])
print( repr(np.multiply(a,b)) )  # array([ 4, 10, 18])
print( repr(np.divide(b,a)) )    # array([4. , 2.5, 2. ])

# 各種計算
print( np.sum(a) )       # 6
print( np.mean(a) )      # 2.0
print( np.max(a) )       # 3
print( np.min(a) )       # 1
print( np.var(a) )       # 0.6666666666666666 分散
print( np.all(a) )       # True 全て真
print( np.any(a) )       # True 何れかが真

# 行列の積
a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
print( repr(a.dot(b)) )  # array([[19, 22],[43, 50]])

# 転置行列
a = np.arange(1,5).reshape((2,2))
print(repr(a))                 # array([[1, 2],[3, 4]])
print(repr(a.T))               # array([[1, 3],[2, 4]])
print(repr(np.transpose(a)))   # array([[1, 3],[2, 4]])

# 0行列
a = np.zeros((2,2), dtype=int)
print(repr(a))        # array([[0, 0],[0, 0]])

# 1行列
a = np.ones((2,2), dtype=int)
print(repr(a))        # array([[1, 1],[1, 1]])

# 単位行列
a = np.identity(3, dtype=int)
print(repr(a))        # array([[1, 0, 0],[0, 1, 0],[0, 0, 1]])

2018-03-18(Sun)

EXCEL VBAメモ - ユーザーフォームを常に最前面にする(Excel2016)

背景

職場PC現在Windows7 Excel2010の環境統一されていて、そこで以下のようなExcelマクロ使用している。

  1. マクロ付ブックを起動する
  2. 同時にユーザーフォーム自動で(VbModelessオプションにて)起動する
  3. 対象ブックを開く(この時ユーザーフォーム最前面に表示されている)
  4. 対象ブックに対し、ユーザーフォーム操作しながら作業を行う。

Excel2016での問題点

ユーザーフォーム操作すると、マクロ付ブックがアクティブになり、対象ブックが隠れてしまう。また、対象ブックをアクティブにすると今度はユーザーフォームが隠れてしまう。

これは、Excel2013以降でExcel自体が変更になった結果みたい。

でも、これでは今後Windows10等に環境移行した際に、作業に支障でまくりなので何等かの対策必要となる。


続きを読む

Connection: close