Fre*_*Foo 68 python numpy multidimensional-array
在Numpy中,我可以使用np.appendor 连接两个端到端的数组np.concatenate:
>>> X = np.array([[1,2,3]])
>>> Y = np.array([[-1,-2,-3],[4,5,6]])
>>> Z = np.append(X, Y, axis=0)
>>> Z
array([[ 1, 2, 3],
[-1, -2, -3],
[ 4, 5, 6]])
Run Code Online (Sandbox Code Playgroud)
但是这些会复制他们的输入数组:
>>> Z[0,:] = 0
>>> Z
array([[ 0, 0, 0],
[-1, -2, -3],
[ 4, 5, 6]])
>>> X
array([[1, 2, 3]])
Run Code Online (Sandbox Code Playgroud)
有没有办法将两个数组连接到视图中,即没有复制?那需要一个np.ndarray子类吗?
pv.*_*pv. 68
属于Numpy数组的内存必须是连续的.如果分别分配数组,它们会随机分散在内存中,并且无法将它们表示为视图Numpy数组.
如果您事先知道需要多少个数组,则可以先从一个预先分配的大数组开始,然后让每个小数组成为大数组的视图(例如通过切片获得).
Joh*_*ohn 10
只需在填充数据之前初始化数组.如果你想要你可以分配比所需更多的空间,并且由于numpy的工作方式它不会占用更多的RAM.
A = np.zeros(R,C)
A[row] = [data]
Run Code Online (Sandbox Code Playgroud)
只有将数据放入阵列后才使用内存.通过连接两个来创建一个新数组永远不会在任何大小的数据集上完成,即数据集> 1GB左右.
| 归档时间: |
|
| 查看次数: |
32125 次 |
| 最近记录: |