一、 索引和切片
X = np.arange(12).reshape(3, 4)
X[-1], X[1:3]
X[1, 2] = 9
X[0:2, :] = 12
二、 节省内存
如果我们Y = X + Y,我们将取消引Y指向的张量,而是指向新分配的内存处的张量。
before = id(Y)
Y = Y + X
id(Y) == before # False
为了:减少不必要的内存分配,希望原地执这些更新,可以进行如下操作:
如果在后续计算中没有重复使X,我们也可以使X[:] = X + Y或X += Y来减少操作的内存开销。
Z = np.zeros_like(Y)
print('id(Z):', id(Z))
Z[:] = X + Y
print('id(Z):', id(Z))
before = id(X)
X += Y
id(X) == before #True
三、 转换为其他Python对象
要将大小为1的张量转换为Python标量,我们可以调用item函数或Python的内置函数。
a = np.array([3.5])
a, a.item(), float(a), int(a) # (array([3.5]), 3.5, 3.5, 3)
type(a) # 查看a数据类型
标签:Python,3.5,内存,np,操作,数据,id,before From: https://www.cnblogs.com/sgqlog/p/17084152.html