目標
我有v在特定 3D 坐標處給出的值x y z。資料存盤為熊貓資料框:
x y z v
0 -68.5 68.50 -10.00 0.297845
1 -68.5 -23.29 61.10 0.148683
2 -68.5 -23.29 63.47 0.142325
3 -68.5 -23.29 65.84 0.135908
4 -68.5 -23.29 68.21 0.129365
... ... ... ...
91804 68.5 23.29 151.16 0.118460
91805 68.5 23.29 153.53 0.119462
91806 68.5 23.29 155.90 0.120386
91807 68.5 23.29 139.31 0.112257
91808 68.5 -68.50 227.00 0.127948

我想在不屬于資料幀的新坐標處找到值,因此我正在研究如何有效地插入資料。
我做了什么:
由于坐標在網格上,我可以使用
我想知道,我做錯了什么??
其他:
資料集
請在此處找到完整的資料集:https : //filebin.net/u10lrw956enqhg5i
可視化
from mayavi import mlab
# Create figure
fig = mlab.figure(1, fgcolor=(0, 0, 0), bgcolor=(0, 0, 0))
mlab.points3d(xs,ys,zs,output)
mlab.view(azimuth=270, elevation=90, roll=180, figure=fig)
# View plot
mlab.show()
uj5u.com熱心網友回復:
我強烈懷疑您的資料在網格上時沒有排序,以便允許對值進行簡單的重塑。但是,您可以使用以下return_inverse引數將其放入網格中np.unique:
px, ix = np.unique(xs, return_inverse=True)
py, iy = np.unique(ys, return_inverse=True)
pz, iz = np.unique(zs, return_inverse=True)
points = (px, py, pz)
values = np.empty_like(vs, shape=(px.size, py.size, pz.size))
values[ix, iy, iz] = vs
return_inverse有點神奇,主要是因為它太違反直覺了。在這種情況下,對于 values 的每個元素,它會告訴您它對應于哪個唯一的、已排序的總位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/401962.html
下一篇:如何通過函式傳遞一系列數字?
