如何在创建numpy的ndarray时按指定模式填充数组
直接创建指定模式的5×5 NumPy数组
当然可以直接创建,不用先初始化再填充,给你几种简单的实现方式:
方法一:使用
np.tile()
这个函数可以将指定数组重复指定次数,非常适合这种每行重复的场景:import numpy as np arr = np.tile(np.arange(5), (5, 1)) print(arr)这里
np.arange(5)生成[0,1,2,3,4],(5,1)表示把这个数组在行方向重复5次,列方向重复1次,直接得到目标数组。方法二:使用
np.repeat()
先把一维数组转成二维行向量,再沿着行方向重复:import numpy as np arr = np.repeat(np.arange(5)[np.newaxis, :], 5, axis=0) print(arr)np.newaxis用来给一维数组增加一个维度,变成[[0,1,2,3,4]],然后axis=0指定沿着行的方向重复5次。方法三:利用广播机制
创建一个全零的5×5数组,再和一维的0-4数组相加,NumPy会自动把一维数组广播到每一行:import numpy as np arr = np.zeros((5,5), dtype=int) + np.arange(5) print(arr)注意要指定
dtype=int,不然默认是浮点型,结果会带小数点。方法四:直接列表生成(不推荐)
用Python列表生成式的方式创建,不过要注意:这种方式生成的数组,所有行其实是同一个数组对象的引用,修改其中一行会影响所有行,所以谨慎使用:import numpy as np arr = np.array([np.arange(5)]*5) print(arr)
内容的提问来源于stack exchange,提问作者eresque-
相关产品推荐
相关产品推荐

