You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何针对数组的各列分别获取行数?

按列统计不规则数组的行数解决方案

嘿,这个问题在处理不规则结构的数组时挺常见的,我来给你捋捋几种实用的解决办法~

首先咱们先明确下数组的结构(拿Python举例,这是最常遇到这类需求的场景),你的数组大概是这样的:

arr = [
    [1, 2, 3, 4],   # 第0行:包含4列元素
    [5, 6, 7, 8],   # 第1行:包含4列元素
    [9, 10, 11]     # 第2行:只包含前3列元素
]

这里第0、1、2列各有3个元素(对应3行数据),第3列只有2个元素(对应2行数据,正好符合你的描述)。

核心思路

本质上就是对每一列的索引,遍历所有行,检查该行是否包含该列的元素,统计符合条件的行数——只要某一行存在该列的元素,就说明这一行在该列有数据,计数加1。

具体实现方法

方法1:Python原生代码(无需额外库)

如果不想依赖第三方库,用原生循环或者列表推导式就能搞定:

写法一:直观循环

# 先确定数组的最大列数,避免遗漏最后一列
max_cols = max(len(row) for row in arr) if arr else 0

col_row_counts = []
for col_idx in range(max_cols):
    count = 0
    for row in arr:
        # 检查当前行是否有该列的元素
        if col_idx < len(row):
            count += 1
    col_row_counts.append(count)

print(col_row_counts)  # 输出: [3, 3, 3, 2]

写法二:Pythonic列表推导式(更简洁)

如果喜欢简洁的写法,可以用列表推导式压缩代码:

max_cols = max(len(row) for row in arr) if arr else 0
col_row_counts = [sum(1 for row in arr if col_idx < len(row)) for col_idx in range(max_cols)]

print(col_row_counts)  # 同样输出: [3, 3, 3, 2]

方法2:用Pandas快速处理(适合数据量大的场景)

如果你平时用Pandas处理数据,那这个需求就更简单了——Pandas会自动识别缺失值,直接统计每列的非空元素个数即可:

import pandas as pd

# 将数组转为DataFrame
df = pd.DataFrame(arr)
# 统计每列的非空行数,转成列表
col_row_counts = df.count().tolist()

print(col_row_counts)  # 输出: [3, 3, 3, 2]

内容的提问来源于stack exchange,提问作者12L304 RAJTHALAPATHY K.S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:58:03