使用包含数组的单个结构化元素创建数组

问题描述

我有这样的dtype:

>>> dt = np.dtype([('x',object,3)])
>>> dt
dtype([('x','O',(3,))])

一个名为“ x”的字段,包含三个指针。我想用这种类型的单个元素构造一个数组:

>>> a = np.array([(['a','b','c'])],dtype=dt)
>>> b = np.array([(np.array(['a','c'],dtype=object))],dtype=dt)
>>> c = np.array((['a','c']),dtype=dt)
>>> d = np.array(['a',dtype=dt)

>>> e = np.array([([['a','c']])],dtype=dt)

所有这五个语句都会产生相同的错误结果:

array([[(['a','a','a'],),(['b','b'],(['c','c',)]],dtype=[('x',))])

如果我尝试删除内部列表/数组,则会出现错误:

>>> f = np.array([('a','c')],dtype=dt)
ValueError: could not assign tuple of length 3 to structure with 1 fields.

发生相同的错误

>>> g = np.array(('a','c'),dtype=dt)

我已经用尽所有可能的组合尝试。我寻找的结果是

 array([(['a',)],))])

如何创建一个具有指定dtype元素的数组?

到目前为止,我发现的唯一方法是手动分配:

z = np.empty(1,dtype=dt)
z['x'][0,:] = ['a','c']

OR

z[0]['x'] = ['a','c']

对于np.array应该可以立即使用的东西来说,这似乎是不必要的解决方法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)