当前位置: 首页 > 面试题库 >

混合类型的NumPy数组/矩阵

东郭赞
2023-03-14
问题内容

我正在尝试创建具有混合数据类型(字符串,整数,整数)的NumPy数组/矩阵(Nx3)。但是,当我通过添加一些数据来添加此矩阵时,出现错误:
TypeError:无效的类型提升 。拜托,有人可以帮我解决这个问题吗?

当我用示例数据创建一个数组时,NumPy将矩阵中的所有列都转换为一种“ S”数据类型。而且我无法为数组指定数据类型,因为当我执行此操作时, res =
np.array([“ TEXT”,1,1],dtype =’S,i4,i4’)
-我收到一个错误: TypeError :期望可读的缓冲区对象

templates.py

import numpy as np
from pprint import pprint

test_array = np.zeros((0, 3), dtype='S, i4, i4')
pprint(test_array)

test_array = np.append(test_array, [["TEXT", 1, 1]], axis=0)
pprint(test_array)

print("Array example:")
res = np.array(["TEXT", 1, 1])
pprint(res)

输出:

array([], shape=(0L, 3L), 
  dtype=[('f0', 'S'), ('f1', '<i4'), ('f2', '<i4')])

 Array example:
 array(['TEXT', '1', '1'], dtype='|S4')

错误:

Traceback (most recent call last):

File "templates.py", line 5, in <module>
test_array = np.append(test_array, [["TEXT", 1, 1]], axis=0)

File "lib\site-packages\numpy\lib\function_base.py", line 3543, in append
return concatenate((arr, values), axis=axis)

TypeError: invalid type promotion

问题答案:

您的问题出在数据中。尝试这个:

res = np.array(("TEXT", 1, 1), dtype='|S4, i4, i4')

要么

res = np.array([("TEXT", 1, 1), ("XXX", 2, 2)], dtype='|S4, i4, i4')

数据必须是元组或元组列表。错误消息的形式不是很明显,是吗?

另外,请注意,必须指定文本字段的长度才能真正保存文本数据。如果要将文本另存为对象(仅保存数组中的引用,则:

res = np.array([("TEXT", 1, 1), ("XXX", 2, 2)], dtype='object, i4, i4')

这通常也非常有用。



 类似资料:
  • 本文向大家介绍详解numpy矩阵的创建与数据类型,包括了详解numpy矩阵的创建与数据类型的使用技巧和注意事项,需要的朋友参考一下 Numpy是python常用的一个类库,在python的使用中及其常见,广泛用在矩阵的计算中,numpy对矩阵的操作与纯python比起来速度有极大的差距。 一、 构造矩阵 矩阵的构造可以有多种方法: 1.使用python中的方法构造矩阵 - 生成一维矩阵 - 生成二

  • 问题内容: 我想返回一个看起来像这样的结构: 这是一个数组,包括字符串,浮点数和Unicode字符。 如果是Python,我将能够: 但是在Go中,您不能具有混合类型的数组(或切片)。 我想到使用这样的结构: 但是我不希望每个字典都成为字典,我希望每个字典都由3个元素组成。 问题答案: 用 如果要访问存储在其中的值,则必须使用类型断言

  • 问题内容: 给定一个NumPy数组,如何将其转换为 原位 ?所以基本上,我想做 而不复制阵列。好大 这样做的原因是我有两种算法来计算。其中一个返回一个数组,另一个返回一个数组(这是两种不同算法所固有的)。所有进一步的计算都假定是的数组。 目前,我在通过调用的C函数中进行了转换。有没有办法在Python中做到这一点? 问题答案: 您可以使用其他dtype创建视图,然后就地复制到视图中: 产量 要显示

  • 问题内容: 原始问题 当我尝试分配数组的某些元素时,我收到一条非常奇怪的错误消息。我正在使用切片和一组索引的组合。请参阅以下简单示例。 此代码引发以下内容: ValueError:形状不匹配:形状(3,4)的值数组无法广播到形状(3,4)的索引结果 - 跟进 将slice和seq组合使用时要小心。整数 正如在github上指出的: 这是numpy设计的工作方式,但是x [0] [:, I]与x [

  • 7.4. 混合切面类型 我们完全可以混合使用以下几种风格的切面定义:使用自动代理的@AspectJ 风格的切面,schema-defined <aop:aspect> 的切面,和用 <aop:advisor> 声明的advisor,甚至是使用Spring 1.2风格的代理和拦截器。 由于以上几种风格的切面定义的都使用了相同的底层机制,因此可以很好的共存。

  • 本文向大家介绍更改给定numpy数组的数据类型,包括了更改给定numpy数组的数据类型的使用技巧和注意事项,需要的朋友参考一下 除了python的本机数据类型外,Numpy数组还支持多种数据类型。创建数组后,我们仍然可以根据需要修改数组中元素的数据类型。用于此目的的两种方法是array.dtype和array.astype array.dtype 此方法为我们提供了数组中元素的现有数据类型。在下面