我有一个有点奇怪的问题,这可能源于numpy中索引的工作方式。但出于某种原因,我似乎不明白这一点,更不用说达到我预期的行为:
>>> a = np.array([['a', 'b'], ['c', 'd']], dtype='<U10')
>>> a
array([['a', 'b'],
['c', 'd']], dtype='<U10')
>>> a[0] = ['e']
>>> a
array([['e', 'e'],
['c', 'd']], dtype='<U10')
所以我所期望的是得到
array([['e'], ['c', 'd']], dtype='<U10)
有人能给我一个提示,说明为什么这不能像我预期的那样工作,以及如何达到预期的行为吗
此外,针对罗甘约什的评论:
>>> a = np.array([np.array(['a', 'b']), np.array(['c', 'd'])])
>>> a[0] = 'e'
>>> a
array([['e', 'e'],['c', 'd']], dtype=object)
然而:
>>> a = np.array([np.array(['a', 'b', 'l']), np.array(['c', 'd'])])
>>> a[0] = 'e'
>>> a
array(['c', array(['c', 'd'], dtype='<U1')], dtype=object)
感觉有点奇怪
提前谢谢
在上一个示例中,创建了一个2元素数组。每个元素可以是任何内容—字符串、列表或数组:
在没有警告的情况下:
此数组的行为非常类似于2元素列表。事实上,我会质疑使用这样的数组而不是列表的价值
使用形状相同的数组创建对象数据类型数组可能很棘手,因为
np.array
会尽可能创建多维数组(如原始示例中所示)显示屏提供有关阵列元素的信息
二维阵列
最初的例子是2d数组。事实上,它是stringdtype(或object)并没有多大区别。它也可以是一个数字数组。不能通过指定更改形状
应用常规多维数组索引规则,包括
broadcasting
查看这些数组如何转换为列表:
numpy
针对数值多维数组进行了优化。所有快速编译的代码都在数值上工作。它可以存储字符串和一般对象,但处理速度是Python的,而不是快速编译的相关问题 更多 >
编程相关推荐