data = [['297348640', 'Y', '12', 'Y'],
['300737722','Y', '1', 'Y'],
['300074407', 'Y', '1', 'N']]
我想将其转换为 NumPy 数组,所以我这样做了:
data = np.array(data)
上面的工作正常。
现在我有两个列表,比方说
a = [0,2,6]
b = [21,21,9]
我必须将这些附加到我之前列表的最后:
data = [['297348640', 'Y', '12', 'Y', 0, 21],
['300737722','Y', '1', 'Y', 2, 21],
['300074407', 'Y', '1', 'N', 6, 9]]
我试过了,但它给了我错误的维度错误
a = np.array([a])
b = np.array([b])
data = np.hstack(data,(a))
data = np.hstack(data,(b))
ValueError: all the input arrays must have same number of dimensions
请您参考如下方法:
类似于@cᴏʟᴅsᴘᴇᴇᴅ的解决方案,但不是传递dtype=object,而是传递data的dtype:
data = np.array([['297348640', 'Y', '12', 'Y'],
['300737722','Y', '1', 'Y'],
['300074407', 'Y', '1', 'N']])
a = [0,2,6]
b = [21,21,9]
a = np.array(a, dtype=data.dtype)
b = np.array(b, dtype=data.dtype)
data = np.hstack((data, a[:, None], b[:, None]))
np.hstack 的第一个参数是一个数组序列。现在,您正在传递 np.hstack(data,(a)),它实际上被解析为两个参数。添加一组额外的括号将 data 和 a(和 b)带入一个序列(元组)。
最后关于索引:In numpy, what does selection by [:,None] do? .这是在模仿 np.reshape()。
