- 项目/需求实战中碰到的问题
- 第三方模块介绍
- 速度上手实战
- 总结+思路扩展
在大学的选修课简单学习过python之后,在做项目过程中,需要实现将三维坐标存入数组,并且选择最大、最小或者任意一个z值,再寻找对应的x值和y值。
第三方模块介绍该模块的主要内容是创建一个二维数组,将三维的空间坐标存入二维数组,从而方便以此为基础的运算。通过x,y,z中的其中一个值来寻找另外两个的值。利于想找最大的z值对应的x,y值。当然想找最大的x值对应的y,z也是类似。
速度上手实战 首先可以创建一个简单的二维数组w1,其中包含多个坐标值,其中的坐标包含x,y,z值。
w1=[[1,2,7.21],[3,3,7.23],[1,4,7.20],[6,7,7.25],[21,3,6.89],[1,23,7.43],[4,3,7.22],[2,3,7.56]
其中[1,2,7.21]就是空间中一个点的坐标,x=1,y=2,z=7.21
下面我们对z值进行排序运算,将排序后的z值存入一维数组y1。
(首先计算有多少点,再创建一个一维数组,利用for循环,将w1中的z值依次赋给y1,最后利用sorted进行排序)
n=len(w1)
d1=[0 for i in range(n)]
for i in range(n):
d1[i]=w1[i][2]
y1 = sorted(d1)
比如我们想要查找大小位置为j的z值所对应的x值和y值。先查找z值在d1中的位置,再查找在w1中对应位置的x值和y值。
l=d1.index(y1[j]); x=w1[l][0] y=w1[l][1]
这样我们就可以得出自己想要的坐标。
当然,在坐标数量十分少的情况下,我们一眼就可以找到。那我们可以随机生成一个数量较大的二维数组。其中N所对应的是坐标的维数,如果是三维的N=3。M是生成坐标的个数。
w1=[[random.random() for i in range(N)] for j in range(M)]总结+思路扩展
这个小tip可以用在许多程序当中,当你想要的实现类似的功能就可以使用以上模块。第一次写文章,比较简单,有什么不对,欢迎批评指正。



