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

如何将对象转换为数组?附目标array数组示例

Hey Lara! 我看你想要把某个对象转换成由多个NumPy数组组成的列表,刚好和你给出的示例结构一致。下面我给你几种实用的实现方法,根据你的原始对象类型来选就行:

方法1:直接构造目标数组列表(已知原始数据)

如果已经有每个数组对应的原始序列数据,直接用numpy.array()转换后放进列表就可以了,这是最直接的方式:

import numpy as np

# 准备每个数组的原始数据
# 第一个数组:8个0
arr1 = [0.0 for _ in range(8)]
# 第二个数组:58个元素,索引16和47位置为1,其余为0
arr2 = [0.0]*58
arr2[16] = 1.0
arr2[47] = 1.0
# 第三个数组:55个元素,索引53位置为1,其余为0
arr3 = [0.0]*55
arr3[53] = 1.0
# 第四个数组:指定的数值序列
arr4 = [1916.924, 0., 0., 0., 267.08, 11.156647, 264.044, 2629.504, 170.109, 3883.039, 2842.796]

# 组合成目标结构
target_array_list = [
    np.array(arr1),
    np.array(arr2),
    np.array(arr3),
    np.array(arr4)
]

# 验证结果
print(target_array_list)
方法2:从自定义对象中提取数据转换

如果你的“指定对象”是自定义类的实例,包含对应的数据属性,只需要提取属性值再转成NumPy数组即可:

import numpy as np

# 假设自定义对象结构
class CustomDataObject:
    def __init__(self):
        self.feature1 = [0.0]*8
        self.feature2 = [0.0]*58
        self.feature2[16] = 1.0
        self.feature2[47] = 1.0
        self.feature3 = [0.0]*55
        self.feature3[53] = 1.0
        self.feature4 = [1916.924, 0., 0., 0., 267.08, 11.156647, 264.044, 2629.504, 170.109, 3883.039, 2842.796]

# 创建对象实例
my_obj = CustomDataObject()

# 提取并转换
target_array_list = [
    np.array(my_obj.feature1),
    np.array(my_obj.feature2),
    np.array(my_obj.feature3),
    np.array(my_obj.feature4)
]
方法3:从结构化数据(如JSON)转换

如果原始对象是JSON这类结构化数据,先解析成Python字典,再遍历转换:

import numpy as np
import json

# 示例JSON数据(实际可以从文件读取)
json_data_str = '''
{
    "arr1": [0., 0., 0., 0., 0., 0., 0., 0.],
    "arr2": [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
    "arr3": [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.],
    "arr4": [1916.924, 0., 0., 0., 267.08, 11.156647, 264.044, 2629.504, 170.109, 3883.039, 2842.796]
}
'''

# 解析JSON为字典
parsed_data = json.loads(json_data_str)

# 按顺序转换为目标数组列表
target_array_list = [
    np.array(parsed_data["arr1"]),
    np.array(parsed_data["arr2"]),
    np.array(parsed_data["arr3"]),
    np.array(parsed_data["arr4"])
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:16:21