P我有一個帶有維度的陣列(2,3,3)。我想根據一個標準生成一個輸出P<150。附加了當前和所需的輸出。
import numpy as np
P = np.array([[[128.22918457, 168.52413295, 209.72343319],
[129.01598287, 179.03716051, 150.68633749],
[131.00688309, 187.42601593, 193.68172751]],
[[ 87.70103267, 115.2603484 , 143.4381863 ],
[ 88.23915528, 122.45062554, 103.06037156],
[ 89.60081102, 128.18809696, 132.46662659]]])
print([P<150])
當前輸出為
array([[[ True, False, False],
[ True, False, False],
[ True, False, False]],
[[ True, True, True],
[ True, True, True],
[ True, True, True]]])
所需的輸出是
array([[[128.22918457,129.01598287,131.00688309]],
[[ 87.70103267, 115.2603484 , 143.4381863 ],
[ 88.23915528, 122.45062554, 103.06037156],
[ 89.60081102, 128.18809696, 132.46662659]]])
uj5u.com熱心網友回復:
嘗試這個:
filterarr = [P<150]
newarr = P[filterarr]
print(newarr)
來源:https ://www.w3schools.com/python/numpy/numpy_array_filter.asp
uj5u.com熱心網友回復:
邏輯不清楚,因為您的輸出不是有效的 numpy 陣列(您不能有具有不同數量專案的維度)。
不是直接問你什么,而是假設你想展平輸出并保留 3 列:
P2 = P.ravel()
out = P2[P2<150].reshape(-1,3)
輸出:
array([[128.22918457, 129.01598287, 131.00688309],
[ 87.70103267, 115.2603484 , 143.4381863 ],
[ 88.23915528, 122.45062554, 103.06037156],
[ 89.60081102, 128.18809696, 132.46662659]])
uj5u.com熱心網友回復:
您可以通過在索引時放置變數來過濾陣列
import numpy as np
P = np.array([[[128.22918457, 168.52413295, 209.72343319],
[129.01598287, 179.03716051, 150.68633749],
[131.00688309, 187.42601593, 193.68172751]],
[[ 87.70103267, 115.2603484 , 143.4381863 ],
[ 88.23915528, 122.45062554, 103.06037156],
[ 89.60081102, 128.18809696, 132.46662659]]])
# Just add P in the indexing
print(P[P<150])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488928.html
