小编Jan*_*ann的帖子

在matplotlib scatter3d中设置zlim

我在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方向.我怎么能这样做?

matplotlib scatter3d

10
推荐指数
1
解决办法
1万
查看次数

替换numpy数组中的元素避免循环

我有一个非常大的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].但是,对于大型数据集,此过程非常缓慢.什么是更快,更优雅的方式来完成这项任务?

python for-loop numpy numpy-slicing

6
推荐指数
1
解决办法
1646
查看次数

标签 统计

for-loop ×1

matplotlib ×1

numpy ×1

numpy-slicing ×1

python ×1

scatter3d ×1