2
我有numpy.matrix
类型奇怪的行为
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
# [...]
# Downsampling for plotting
# type(verts): np.matrix
# verts.shape: (3, 700000)
verts = verts_small[:, ::1000]
ax.plot(verts[0, :], verts[1, :], verts[2, :], 'o')
这有奇怪的行为做了一些计算的结果。将所有点排成一行。
如果相反:
verts = np.array(verts[:, ::1000])
的3D-情节按预期工作。这是一个预期的行为还是它的一个错误?
你看过':: 1000'索引后'verts'的形状吗?如果您从2d数组开始,则需要确保您正确编制了正确的维度。在较小的东西上练习那种索引,让你明白其中的差异。 – hpaulj
@hpaulj在我纠正的第一个电话中有一个错字。顺便说一下,我在切片后获得的形状对于'np.array'和'np.matrix'类型都是相同的。 – SolidSnake
请记住,当您索引'np.matrix'时,结果仍然是2d。 'np.ndarray'可能是1d(取决于你如何编制索引)。 – hpaulj