python - 如何将数组导入函数并导出结果数组
问题描述
我有 numpy 数组(x、y 和 z 坐标)并想使用函数进行一些计算,最后将计算结果导出为 numpy 数组(为简单起见,我只是复制了一个简单的案例):
point_1 = np.array ([[1., 2., 1.],
[0., 1., 1.]])
point_2 = np.array ([[0., 0., 1.],
[1., 0., 2.]])
a = 1.
b = 2.
c = 3.
d = 4.
在我的函数中,我想使用数组的每一行的第二 ( )和y
第三 ( z
) 列来计算同一行的第一列 () 的新值。实际上每一行都是一个坐标,我想为每一行计算一个新的。然后,我想给他们一个新的数组。这也是我的功能:point_1
point_2
x
x
def fun_1(x, y, z):
points_new = np.array([])
new_x = -(d + b * y + c * z) / a
points_new = np.append(points_new, new_x)
return points_new
np.vstack((point_1,point_2))
对于输入,例如将结果导入我的函数(我的意思是fun_1(np.vstack((point_1,point_2)
)对我来说效率更高。但是,这个功能并没有给我我想要的输出。我希望有:
points_new=np.array ([[-11., 2., 1.],
[-9., 1., 1.],
[-7., 0., 1.],
[-10., 0., 2.]])
在此之前,我非常感谢任何贡献。
解决方案
您可以使用map
功能和修改版本的组合fun_1
def fun_1(row):
a, b, c, d = 1., 2., 3., 4.
row[0] = -(d + b * row[1] + c * row[2]) / a
return row
point_1 = np.array([[1., 2., 1.],[0., 1., 1.]])
point_2 = np.array([[0., 0., 1.],[1., 0., 2.]])
points_list = [point_1, point_2]
new_points = np.asarray(list(map(fun_1, [x for point in points_list for x in point])))
它适用于您附加到points_list
.
推荐阅读
- url - Google 应用程序脚本,onclick 和 href 之间的优先级
- python - 为什么我的数据在图表中间被挤压?
- swift - Swift 5 - 从类到类传递数据的问题
- swift - SwiftUI 列表的性能问题
- bluetooth - 如何在代码视觉中修剪字符串的未知第一个字符
- facebook - 来自 Facebook 的 debug_token 响应不成功:input_token 中的 App_id 与查看应用程序不匹配
- xml - 恢复包含在多个文件中的相对链
- postgresql - 为什么我的烧瓶服务器无法使用 docker-compose 与 postgres 数据库通信?
- c# - 转换 Linq IQueryable
到 Linq IQueryable - r - 尝试将点添加到基本 R 图