我有一个2D numpy数组,用array1
表示值。 array1
的尺寸为2x4。我想创建一个尺寸为20x20x2x4的4D numpy数组array2
,我希望复制数组array1
以获取此数组。
也就是说,如果array1
是
[[1, 2, 3, 4],
[5, 6, 7, 8]]
我想要
array2[0, 0] = array1
array2[0, 1] = array1
array2[0, 2] = array1
array2[0, 3] = array1
# etc.
我该怎么做?
答案 0 :(得分:4)
初始化的一种方法 -
libraryDependencies
运行时测试 -
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.1.0",
"com.databricks" %% "spark-csv" % "1.5.0",
"org.apache.commons" % "commons-configuration2" % "2.1.1",
"commons-beanutils" % "commons-beanutils" % "1.9.3"
)
答案 1 :(得分:3)
有两种简单的方法:
array2 = np.broadcast_to(array1, (20, 20, 2, 4)) # array2 is a READONLY-view
和np.tile
:
array2 = np.tile(array1, (20, 20, 1, 1)) # array2 is a normal numpy array
如果您不想修改array2
,那么np.broadcast_to
应该非常快速和简单。否则,应首选np.tile
或分配给新分配的数组(请参阅Divakar
s answer)。
答案 2 :(得分:0)
我得到了答案。
array2[:, :, :, :] = array1.copy()
这应该可以正常工作