import numpy as np
y = np.array(((1,2,3),(4,5,6),(7,8,9)))
OUTPUT:
print(y.flatten())
[1 2 3 4 5 6 7 8 9]
print(y.ravel())
[1 2 3 4 5 6 7 8 9]
Run Code Online (Sandbox Code Playgroud)
两个函数都返回相同的列表.那么两个不同功能执行相同工作的需求是什么.
对于最小的工作示例,让我们数字化2D数组.numpy.digitize需要一维数组:
import numpy as np
N = 200
A = np.random.random((N, N))
X = np.linspace(0, 1, 20)
print np.digitize(A.ravel(), X).reshape((N, N))
Run Code Online (Sandbox Code Playgroud)
现在文档说:
......只在需要时才制作副本.
ravel在这种情况下,如何知道副本是否"需要"?通常 - 有没有办法可以确定特定操作是创建副本还是视图?