[英]Mathematical operation with numpy array over ndaaray with different shapes
[英]Do some mathematical operation on numpy array
我有一個 numpy 陣列看起來像:
[array([580, 201]), array([167, 701]), array([167, 694]), array([979, 725]), array([ 200, 1271]), array([1005, 1266]), array([ 180, 1568]), array([ 994, 1591]), array([ 539, 1862])]
我想從和 201 中提取 580,以便找到 x 和 y 的最小值和最大值。 所以我將其他坐標與 x_min、x_max、y_min 和 y_max 進行比較,如果坐標在范圍內,那么它們將 append 否則我們創建新數組。
我試圖找到提取數組元素,但找不到任何解決方案來對其進行操作。
coordinates = [array([580, 201]), array([167, 701]), array([167, 694]), array([979, 725]), array([ 200, 1271]), array([1005, 1266]), array([ 180, 1568]), array([ 994, 1591]), array([ 539, 1862])]
for i in coordinates_new[0]:
print(i)
output: 580
201
我嘗試僅提取 580 和 201,以便在使用 i[0] 時將其與其他坐標進行比較,它會給出錯誤 IndexError: invalid index and scalar variable
我不確定我是否理解這個問題,但只是為了讓事情開始:
import numpy as np
aa =[[580, 201], [167, 701], [167, 694], [979, 725], [ 200, 1271], [1005, 1266], [ 180, 1568],
[ 994, 1591], [ 539, 1862]]
print(f' list :\n{aa}\n')
bb=np.array(aa)
print(f' np.array :\n {bb}\n')
cc=np.transpose(bb)
print(f' transposed array :\n {cc}\n')
print(f' xmax: {np.max(cc[0])}')
print(f' ymax: {np.max(cc[1])}')
print(f' xmin: {np.min(cc[0])}')
print(f' ymin: {np.min(cc[1])}')
output:
list :
[[580, 201], [167, 701], [167, 694], [979, 725], [200, 1271], [1005, 1266], [180, 1568], [994, 1591], [539, 1862]]
np.array :
[[ 580 201]
[ 167 701]
[ 167 694]
[ 979 725]
[ 200 1271]
[1005 1266]
[ 180 1568]
[ 994 1591]
[ 539 1862]]
transposed array :
[[ 580 167 167 979 200 1005 180 994 539]
[ 201 701 694 725 1271 1266 1568 1591 1862]]
xmax: 1005
ymax: 1862
xmin: 167
ymin: 201
對數組元素應用一些條件:
bb=[] # empty list
for a in aa:
print(a)
if a[0]>200: bb.append(a) # you can have two conditions, of course, a[1]>..
print()
for b in bb:
print(b)
output:
[580, 201]
[167, 701]
[167, 694]
[979, 725]
[200, 1271]
[1005, 1266]
[180, 1568]
[994, 1591]
[539, 1862]
[580, 201]
[979, 725]
[1005, 1266]
[994, 1591]
[539, 1862]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.