len = 5
results = np.empty(len)
for i in range(len):
results[i] = ([999, 'sss'])
我想预先定义一个列表的长度,它是5,然后填充一些同时包含数值和字符串变量的值。。。不管我用什么
for i in range(len):
results[i] = ([[999], ['sss']])
或者
for i in range(len):
results[i] = [[999], ['sss']]
我收到错误消息
ValueError Traceback (most recent call last)
<ipython-input-114-4cfd5264742d> in <module>()
2 results = np.empty(len)
3 for i in range(len):
----> 4 results[i] = ([999, 'sss'])
ValueError: setting an array element with a sequence.
我该怎么办?你知道吗
除非您真的需要混合
dtype
的numpy数组,否则我建议您创建一个列表列表:或者,如果你列出一个元组列表,你可以继续一个make a structured array-1d,其中包含2个所需的
dtype
字段:在尝试混合整数和字符串时,需要注意预期用途。你知道吗
注意创建“空”数组时会发生什么:
它创建一个所需大小的数组,但默认值为
dtype
,float
。初始值是垃圾-尽管显示为浮点数。你知道吗这意味着你唯一能放入
arr[0]
的就是一个浮点数。你知道吗它也不会接受一个列表或元组,一个序列。它必须是可以转换成浮点数的东西。你知道吗
指定
object
数据类型可以让您在元素中放入任何内容,因为元素实际上包含指针—就像列表一样。你知道吗这样的数组要么是一个美化的列表,要么是一个堕落的列表,这取决于你的需要。你知道吗
您可以使用
dtype
'object'
作为results
数组:如果在
results
数组中放入的内容总是长度为2,那么在制作np.empty
时最好指定适当的形状:注意,尽量不要使用
len
作为变量,因为它已经是python中的内置函数(在上面的示例中,我用length
替换了它)相关问题 更多 >
编程相关推荐