用人話說 Numpy – 3/13 其他建立陣列的方式
arange 函數跟 range 函數類似,但返回的是陣列
>>> np.arange(5, dtype=float) array([ 0., 1., 2., 3., 4.]) >>> np.arange(1, 6, 2, dtype=int) array([1, 3, 5])
zeros 函數和 ones 函數建立指定維度的新陣列,填入的值就是0 或1 跟函數名稱相同。
以下的方式可能是最通用的用這兩個函數建立陣列的方式
>>> np.ones((2,3), dtype=float) array([[ 1., 1., 1.], [ 1., 1., 1.]]) >>> np.zeros(7, dtype=int) array([0, 0, 0, 0, 0, 0, 0])
zeros_like 函數和 ones_like 函數,建立新陣列,跟傳入的陣列相同的維度及類型。
>>> a = np.array([[1, 2, 3], [4, 5, 6]], float) >>> np.zeros_like(a) array([[ 0., 0., 0.], [ 0., 0., 0.]]) >>> np.ones_like(a) array([[ 1., 1., 1.], [ 1., 1., 1.]])
還有一些函數能建立特殊的矩陣(2維陣列),指定長度大小來建立矩陣。補充,所有元素都是0,對角線的元素是1
>>> np.identity(4, dtype=float) array([[ 1., 0., 0., 0.], [ 0., 1., 0., 0.], [ 0., 0., 1., 0.], [ 0., 0., 0., 1.]])
eye 函數會返回第k 個元素對角線為 1 的矩陣
>>> np.eye(4, k=1, dtype=float) array([[ 0., 1., 0., 0.], [ 0., 0., 1., 0.], [ 0., 0., 0., 1.], [ 0., 0., 0., 0.]])