python - 将多个元素索引从一个数组应用到另一个数组
问题描述
我需要一些帮助来解决涉及数组的问题。
我已经尝试了堆栈溢出(np.where,sort)的一些主题,但没有找到解决我的情况的方法。
这里是:
我有两个 numpy 对象数组(A 和 B),并且都具有相同的维度(900,900,3)。
数组 A 具有作为字符串重复多次的特定元素,具有在列表中指定的 n 个索引。我需要知道(搜索、收集、详细说明)这些索引并将它们用作参考来对数组 B 数据(整数/浮点数)进行一些计算。
如前所述,数组很大。我可以通过循环或某些功能来做到这一点吗?
解决方案
您可以直接使用包含城市的 dtype 对象的 3D 数组来索引您的 3D 浮点数组,例如:
np.sum(numbers[cities == 'New-York'])
例如cities
:
np.array([[['Berlin', 'Paris'],
['New-York', 'Oslo']],
[['New-York', 'Reykjavik'],
['New-York', 'Madrid']]], dtype=object)
并且numbers
作为:
np.array([[[0., 1.],
[2., 3.]],
[[6., 7.],
[4., 5.]]])
你会得到12.0
!
最后,您可以遍历城市以获得不同的总和:
for city in cities.flatten():
print(city, ': ', np.sum(numbers[cities == city]))
这使:
Berlin: 0
Paris: 1
New-York: 12
Oslo: 3
New-York: 12
Reykjavik: 7
New-York: 12
Madrid: 5
推荐阅读
- css - Google recaptcha 样式问题,用 css 还是 javascript 解决?
- java - 如果输入了无效选项,我如何循环代码
- html - 如何在 CSS 代码中限制背景图像?
- typescript - What is TypeScript's ThisType used for?
- c++ - C++:如何从 lambda 中“取消捕获”不可复制的内容(例如 unique_ptr)?
- matlab - Plotting numbers in a Cell array
- java - 在java中打包和解包一个浮点数组
- terraform - Cannot taint null_resource
- javascript - 在表单中单击下一步时如何添加幻灯片效果?
- arrays - Scala function that accepts array argument and returns a mutated array