我在Python中有三个列表xs,ys,zs的数据点,我正在尝试matplotlib使用该scatter3d方法创建一个3d图.
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
plt.xlim(290)
plt.ylim(301)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.scatter(xs, ys, zs)
plt.savefig('dateiname.png')
plt.close()
Run Code Online (Sandbox Code Playgroud)
在plt.xlim()和plt.ylim()做工精细,但我没有找到一个函数来设置的边框z方向.我怎么能这样做?
我有一个非常大的1d numpy数组Xold与给定的值.这些值应根据2d numpy数组Y指定的规则进行替换:例如
Xold=np.array([0,1,2,3,4])
Y=np.array([[0,0],[1,100],[3,300],[4,400],[2,200]])
Run Code Online (Sandbox Code Playgroud)
每当Xold中的值与Y [:,0]中的值相同时,Xnew中的新值应该是Y [:,1]中的对应值.这是通过两个嵌套的for循环实现的:
Xnew=np.zeros(len(Xold))
for i in range(len(Xold)):
for j in range(len(Y)):
if Xold[i]==Y[j,0]:
Xnew[i]=Y[j,1]
Run Code Online (Sandbox Code Playgroud)
通过给出的示例,这会产生Xnew=[0,100,200,300,400].但是,对于大型数据集,此过程非常缓慢.什么是更快,更优雅的方式来完成这项任务?