我有以下python代码来汇总具有另一个数组中的条件的数组
np.where(lower_bounds>0, histo1,0).sum()
我认为numpy等价物是var map = L.map('map').setView([-36.60664, -72.10342], 4);
map.options.minZoom = 4;
map.options.maxZoom = 18;
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
var LeafIcon = L.Icon.extend({
options: {
//shadowUrl: 'leaf-shadow.png',
iconSize: [30, 30],
//shadowSize: [50, 64],
iconAnchor: [22, 94],
//shadowAnchor: [4, 62],
popupAnchor: [-3, -76]
}
});
var myIcon = new LeafIcon({iconUrl: 'http://icons.veryicon.com/128/System/Small%20%26%20Flat/map%20marker.png'});
L.marker([-33.4247, -70.67877], {icon: myIcon}).bindPopup("Parque Fluvial Renato Poblete").addTo(map);
但是numpy方法将histo1中的所有内容相加(忽略了lower_bounds&gt; 0的要求)。为什么?或者还有另一种方法吗?感谢。
答案 0 :(得分:0)
好的,这无疑是猜测,但我能想到的唯一解释是np.where(lower_bounds>0, histo1,0).sum()
返回全部金额
在Python2上:
[1, 2] > 0
True
意味着你的numpy行将广播它的第一个参数并始终从histo1中选择,而不是从0中选择。注意,评论histo1[lower_bounds>0].sum()
中建议的替代公式也不起作用(它将返回{{1在这种情况下。
解决方案。将lower_bounds显式转换为数组
histo1[1]
顺便说一下。在Python3上你会得到一个异常
np.where(np.array(lower_bounds)>0, histo1, 0)