向空的np.array追加list的每列

向空的np.array追加list的每列

两种方法:逐列追加和一次性构建数组。

方法1:逐列追加
如果你想逐列追加数据到一个空的NumPy数组中,你可以使用np.append函数或者np.hstack(水平堆叠)函数。但是要注意,由于NumPy数组的大小在内存中是固定的,逐元素或逐列追加在大数据集上可能效率不高,因为每次追加都会创建数组的一个新副本。

# 创建一个空的NumPy数组(初始时可能不知道最终的列数或行数)
# 这里我们先创建一个空数组,然后设置其形状为(0, 列数) —— 0行,列数可以根据第一列确定
empty_array = np.array([])  # 或者用 np.empty((0, 你预期的列数), dtype=你的数据类型)

# 假设你有以下几个列向量需要追加
col1 = np.array([1, 2, 3])
col2 = np.array([4, 5, 6])
col3 = np.array([7, 8, 9])

# 逐列追加
# 注意:如果empty_array是空的,第一次追加时需要指定axis=0来按行追加(实际上是作为列追加,因为我们是转置的视角)
# 之后的追加则可以直接使用hstack或者调整形状后使用append
if empty_array.size == 0:  # 检查是否为空
    empty_array = col1.reshape(-1, 1)  # 将第一列转换为列向量
else:
    empty_array = np.hstack((empty_array, col2.reshape(-1, 1)))  # 水平堆叠
    # 或者使用 append,但通常 hstack 在追加列时更直观
    # empty_array = np.append(empty_array, col2.reshape(-1, 1), axis=1)

# 继续追加其他列
empty_array = np.hstack((empty_array, col3.reshape(-1, 1)))

print(empty_array)

方法2:一次性构建数组
如果你事先知道所有列,最高效的方式是一次性构建整个数组,而不是逐列追加。

# 直接将所有列合并
cols = [col1, col2, col3]  # 假设这是你要追加的所有列
# 使用 column_stack 或者直接转置后合并
full_array = np.column_stack(cols)
# 或者
# full_array = np.array(cols).T  # T 表示转置,因为 cols 是行列表

print(full_array)

在实际情况中,推荐尽可能使用第二种方法(一次性构建数组),因为它避免了多次复制数据,从而提高了效率。如果你确实需要逐步构建数组,考虑使用列表来收集数据,然后最后将其转换为NumPy数组。

直接把 list 赋值给一个空的 np.array

import numpy as np
a = np.array([])
b = [4, 3, 6, 7, 8]
a = b
print(a, '\n', type(a))

Output:

[4, 3, 6, 7, 8] 
 <class 'list'>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值