{"library":"numpy-groupies","title":"numpy-groupies","description":"Numpy-groupies is a Python library offering optimized tools for group-indexing operations, most notably the `aggregate` function. It provides a highly performant and lightweight alternative to operations like `pandas.groupby` for specific use cases, with implementations leveraging plain NumPy, Numba, and sometimes Weave for speed. The current version is 0.11.3, and it receives active maintenance and updates.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install numpy-groupies"],"cli":null},"imports":["from numpy_groupies import aggregate"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import numpy as np\nfrom numpy_groupies import aggregate\n\n# Example data: values 'a' to be grouped by 'group_idx'\ngroup_idx = np.array([3, 0, 0, 1, 0, 3, 5, 5, 0, 4])\na = np.array([13.2, 3.5, 3.5, -8.2, 3.0, 13.4, 99.2, -7.1, 0.0, 53.7])\n\n# Aggregate sum for each group\nresult_sum = aggregate(group_idx, a, func='sum', fill_value=0)\nprint(f\"Aggregated sum: {result_sum}\")\n# Expected: [10.  -8.2  0.  26.6 53.7 92.1]\n\n# Aggregate count of elements in each group\nresult_count = aggregate(group_idx, a, func='count', fill_value=0)\nprint(f\"Aggregated count: {result_count}\")\n# Expected: [4 1 0 2 1 2]\n\n# Aggregate mean of values in each group\nresult_mean = aggregate(group_idx, a, func='mean', fill_value=0)\nprint(f\"Aggregated mean: {result_mean}\")\n# Expected: [ 2.5   -8.2    0.   13.35 53.7  46.05]","lang":"python","description":"This quickstart demonstrates the core `aggregate` function, showing how to group values by an index array and apply common aggregation functions like sum, count, and mean. The `fill_value` parameter sets the value for groups that do not appear in `group_idx`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"0.11.3","pypi_latest":"0.11.3","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.7,"avg_import_s":0.28,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"numpy-groupies","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.24,"mem_mb":6.8,"disk_size":"89.6M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"numpy-groupies","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.7,"import_time_s":0.19,"mem_mb":6.8,"disk_size":"86M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"numpy-groupies","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.33,"mem_mb":8,"disk_size":"97.2M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"numpy-groupies","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.4,"import_time_s":0.35,"mem_mb":8,"disk_size":"93M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"numpy-groupies","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.32,"mem_mb":7.6,"disk_size":"85.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"numpy-groupies","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.4,"import_time_s":0.32,"mem_mb":7.6,"disk_size":"81M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"numpy-groupies","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.25,"mem_mb":8,"disk_size":"85.2M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"numpy-groupies","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.6,"import_time_s":0.33,"mem_mb":8,"disk_size":"81M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"numpy-groupies","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.21,"mem_mb":6.5,"disk_size":"97.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"numpy-groupies","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.2,"import_time_s":0.23,"mem_mb":6.5,"disk_size":"96M"}]}}