python - 从 for 循环中的二维数组中删除数组
问题描述
我有一个二维数组,它是 xyz 坐标。
array([[ 1. , 1. , 1. ],
[ 2. , 3. , 1. ],
[ 3. , 4. , 1. ],
[ 3.1, 5.1, 1. ],
[ 3.2, 5.2, 1. ],
[ 3.4, 5.3, 1. ],
[ 3.5, 5.4, 1. ],
[ 3.7, 5.5, 1. ],
[ 3.8, 5.6, 1. ],
[ 3.9, 5.7, 1. ],
[ 4. , 5.8, 1. ],
[ 4.1, 5.9, 1. ],
[ 4.2, 6. , 1. ],
[ 5. , 6.1, 1. ],
[ 9. , 6.2, 1. ],
[10. , 10. , 1. ]])
当我遍历二维数组时,我想一次删除一个子数组。这样在第一个循环中,第一个子数组将被删除,二维数组将是
array([[ 2. , 3. , 1. ],
[ 3. , 4. , 1. ],
[ 3.1, 5.1, 1. ],
[ 3.2, 5.2, 1. ],
[ 3.4, 5.3, 1. ],
[ 3.5, 5.4, 1. ],
[ 3.7, 5.5, 1. ],
[ 3.8, 5.6, 1. ],
[ 3.9, 5.7, 1. ],
[ 4. , 5.8, 1. ],
[ 4.1, 5.9, 1. ],
[ 4.2, 6. , 1. ],
[ 5. , 6.1, 1. ],
[ 9. , 6.2, 1. ],
[10. , 10. , 1. ]])
在第二个循环中,第二个子数组将被删除,二维数组将被
array([[ 1. , 1. , 1. ],
[ 3. , 4. , 1. ],
[ 3.1, 5.1, 1. ],
[ 3.2, 5.2, 1. ],
[ 3.4, 5.3, 1. ],
[ 3.5, 5.4, 1. ],
[ 3.7, 5.5, 1. ],
[ 3.8, 5.6, 1. ],
[ 3.9, 5.7, 1. ],
[ 4. , 5.8, 1. ],
[ 4.1, 5.9, 1. ],
[ 4.2, 6. , 1. ],
[ 5. , 6.1, 1. ],
[ 9. , 6.2, 1. ],
[10. , 10. , 1. ]])
等等。
目前我拥有的是以下内容:
xline =[1, 2, 3, 3.1, 3.2, 3.4, 3.5, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 5, 9, 10]
yline =[1, 3, 4, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6,5.7, 5.8, 5.9, 6, 6.1, 6.2, 10]
zline =[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
df = DataFrame(xline,columns=['x_value'])
df['y_value']=yline
df['z_value']=zline
points=df.values
for p1 in points:
points2=points[:]
points3=np.delete(points2, np.argwhere(points2 == p1))
print(points3)
但我的代码似乎将二维数组减少为一维数组。有谁知道如何解决这一问题?
非常感谢您的支持和帮助。
真挚地
威尔逊
解决方案
这可以使用列表索引和连接来完成。我将在这里使用一个不同的(较短的)列表来演示,否则它会太长。
假设我们有一个列表
L = [1,2,3,4,5,6,7]
我们想完全按照您的要求做。然后我们可以做
for i in range(0, len(L)):
new_L = L[0:i] + L[i+1:len(L)]
print(new_L)
输出:
[2, 3, 4, 5, 6, 7]
[1, 3, 4, 5, 6, 7]
[1, 2, 4, 5, 6, 7]
[1, 2, 3, 5, 6, 7]
[1, 2, 3, 4, 6, 7]
[1, 2, 3, 4, 5, 7]
[1, 2, 3, 4, 5, 6]
i
您可以创建一个没有th 元素的新列表,而不是从列表中删除。相同的代码也应该适用于 numpy 数组。
旁注:如果您只是想创建一个给定的坐标列表xline
, yline
, 和zline
,使用 Python 的列表推导可能更容易:
coords = [[x,y,z] for x,y,z in zip(xline,yline,zline)]
这将返回一个列表形式为
coords = [ [x1, y1, z1],
[x2, y2, z2],
[x3, y2, z3],
...
]
推荐阅读
- swift - .DAE 或 .SCN 文件在 Xcode 中无法正确显示
- php - 在android中读取mysql数据库返回空值
- django - 链接外键反向查找的每个项目组
- ruby-on-rails - 保存期间 Flash 未呈现模型错误
- javascript - 是什么让 CanvasRenderingContext2D 成为 CanvasRenderingContext2D?
- sql - 如何在 Oracle 语法中使用双条件进行 LEFT JOIN?
- reactjs -
vs graphql Hoc,这是在 react apollo 中将 graphql 查询与组件挂钩的最佳方法 - terminal - 禁用 GNU 屏幕选择缓冲区/剪贴板管理
- c# - 在 dategridview 中过滤日期时截断日期
- node.js - 在 Node.js 中使用 Cloud Spanner 插入查询