如何解决NumPy:平铺到特定大小
让我们说我们有一个模式
x = np.array([1,2,3])
我们想重复该模式以填充大小为n >> x.size
的数组。
我们可以做类似的事情:
np.tile(x,1 + (n // x.size))[:n]
我们可以根据形状对二维数组做类似的事情。 (而不是大小)并将其抽象为一个函数。
以二维数组为例:
pattern = np.array([[1,2],[4,5]])
n_rows = 7
n_cols = 5
np.tile(
pattern,(1 + (n_rows // pattern.shape[0]),1 + (n_cols // pattern.shape[1]))
)[:n_rows,:n_cols]
Out:
array([[1,1,1],5,4,4],[1,1]])
我的问题:NumPy中是否有本地方法?
解决方法
您可以使其更通用一些,但是没有内置功能
x = np.array([[1,2],[4,5]])
shape = (7,5)
np.tile(x,np.array(shape)//np.array(np.shape(x)) + 1)[tuple(map(slice,shape))]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。