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

如何用NumPy基于96元素price_array创建特定多分区四维数组

实现指定结构的四维价格数组

针对你需要将96个价格的数组price_array转换为特定四维数组的需求,以下是两种实现方案:

方案一:使用NumPy(推荐,适合批量数据操作)

NumPy的数组操作能更高效地处理这类多维结构:

import numpy as np

# 模拟输入数组(替换为你的实际price_array)
price_array = np.random.randint(0, 1000, size=96)

# 初始化四维数组,形状为(4, 4, 5, 1),默认填充-1
result = np.full((4, 4, 5, 1), -1, dtype=np.float64)

# 遍历1-4个分区的情况
for partition_count in range(1, 5):
    dim1_index = partition_count - 1  # 第一维度索引从0开始
    part_size = 96 // partition_count
    # 将原数组分割为对应数量的分区
    partitions = np.array_split(price_array, partition_count)
    
    # 处理每个有效分区
    for part_index in range(partition_count):
        # 对分区降序排序,取前5个最高值
        top5_values = np.sort(partitions[part_index])[::-1][:5]
        # 将值写入对应位置,第四维度存储单个值
        result[dim1_index, part_index, :len(top5_values), 0] = top5_values

# 验证示例
print("1分区(整体)的前5高值:", result[0, 0, :, 0])
print("2分区的第一个子分区前5高值:", result[1, 0, :, 0])
print("2分区的无效条目(全为-1):", result[1, 2, :, 0])

方案二:纯Python实现(无需第三方库)

如果不需要NumPy,用原生列表也能实现:

import random

# 模拟输入数组(替换为你的实际price_array)
price_array = [random.randint(0, 1000) for _ in range(96)]

# 初始化四维列表,结构为[4个分区数][4个分区条目][5个高值][1个存储值]
result = [[[[-1] for _ in range(5)] for __ in range(4)] for ___ in range(4)]

for partition_count in range(1, 5):
    dim1_index = partition_count - 1
    part_size = 96 // partition_count
    # 分割原列表为对应数量的分区
    partitions = [price_array[i*part_size : (i+1)*part_size] for i in range(partition_count)]
    
    for part_index in range(partition_count):
        # 降序排序取前5个值
        top5_values = sorted(partitions[part_index], reverse=True)[:5]
        # 写入对应位置
        for idx, val in enumerate(top5_values):
            result[dim1_index][part_index][idx][0] = val

# 验证示例
print("3分区的第二个子分区前5高值:", [x[0] for x in result[2][1]])
print("4分区的第四个无效条目:", [x[0] for x in result[3][3]])

结构说明

最终的四维数组完全符合你的要求:

  • 第一维度:4个元素,对应1/2/3/4种分区方式
  • 第二维度:每个第一维度元素下有4个条目,前N个(N为当前分区数)为有效分区数据,其余填充-1
  • 第三维度:5个元素,对应每个分区的第1至第5高值
  • 第四维度:单个元素,存储对应第三维度的价格值

内容的提问来源于stack exchange,提问作者PeterBe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:20:24