擅长:python、mysql、java
<p><code>recarray</code>和<code>structured</code>数组不是为方便的命名列而设计的。它们是用来保存混合数据类型的,这是一种可以从CSV文件加载的东西——字符串、整数、浮点、日期。在</p>
<p>可以跨字段执行的操作是有限的。正如您所发现的,您不能向整个数组添加值。如果字段类型正确,则必须逐个字段添加它。类似地,您不能求和这两个字段,或取它们的平均值(使用<code>np.sum</code>或<code>np.mean</code>函数)。也不能重塑或转置这些数组(将字段交换为行等)。在</p>
<p><a href="https://stackoverflow.com/questions/36432067/constructing-np-array-with-overlapping-fields-in-dtype">Constructing np.array with overlapping fields in dtype</a>是一个当前的SO问题,它说明了以2列数组的形式访问两个字段的几种方法。在</p>
<p>最好使用普通的nd阵列,除非您真的需要增加结构化阵列的灵活性。如果要按名称访问列,请考虑定义变量,例如<code>ind_x=0</code>,<code>ind_y=1</code>,这样就可以使用<code>a[2:5, ind_x]</code>。在</p>