当前位置: 首页 > 编程笔记 >

更改给定numpy数组的数据类型

厉坚
2023-03-14
本文向大家介绍更改给定numpy数组的数据类型,包括了更改给定numpy数组的数据类型的使用技巧和注意事项,需要的朋友参考一下

除了python的本机数据类型外,Numpy数组还支持多种数据类型。创建数组后,我们仍然可以根据需要修改数组中元素的数据类型。用于此目的的两种方法array.dtypearray.astype

array.dtype

此方法为我们提供了数组中元素的现有数据类型。在下面的示例中,我们声明一个数组并找到其数据类型。

示例

import numpy as np
# Create a numpy array
a = np.array([21.23, 13.1, 52.1, 8, 255])
# Print the array
print(a)
# Print the array dat type
print(a.dtype)

输出结果

运行上面的代码给我们以下结果-

[ 21.23 13.1 52.1 8. 255. ]
float64

array.astype

该方法将现有的数组转换为具有所需数据类型的新数组。在下面的示例中,我们采用给定的数组并将其转换为各种目标数据类型。

示例

import numpy as np
# Create a numpy array
a = np.array([21.23, 13.1, 52.1, 8, 255])
# Print the array
print(a)
# Print the array dat type
print(a.dtype)
# Convert the array data type to int32
a_int = a.astype('int32')
print(a_int)
print(a_int.dtype)
# Convert the array data type to str
a_str = a.astype('str')
print(a_str)
print(a_str.dtype)
# Convert the array data type to complex
a_cmplx = a.astype('complex64')
print(a_cmplx)
print(a_cmplx.dtype)

输出结果

运行上面的代码给我们以下结果-

[ 21.23 13.1 52.1 8. 255. ]
float64
[ 21 13 52 8 255]
int32
['21.23' '13.1' '52.1' '8.0' '255.0']
<U32
[ 21.23+0.j 13.1 +0.j 52.1 +0.j 8. +0.j 255. +0.j]
complex64
 类似资料:
  • 问题内容: 我正在创建一个numpy数组,该数组将填充我制作的特定类的对象。我想初始化数组,使其仅包含该类的对象。例如,这是我想做的事,如果我做这件事会发生什么。 我可以做这个: 然后将的每个元素分配为一个对象(或任何其他类型的对象)。从编程的角度(类型检查)和数学的角度(对函数集进行操作)的角度来看,如果我能够拥有一个s数组,那将是如此的巧妙。 我可以使用任意类指定numpy数组的数据类型吗?

  • 问题内容: 我有一个二维的numpy数组,具有相等数量的列和行。我想将它们排列成一个较大的数组,对角线上的数组较小。应该可以指定起始矩阵在对角线上的频率。例如: 因此,如果我希望此数组在对角线上2次,则期望的输出将是: 3次: 有没有一种快速的方法来使用numpy方法以及对于任意大小的起始数组(仍然考虑到起始数组具有相同的行数和列数)来实现这一点? 问题答案: 方法1 经典案例- 样品运行- 方法

  • 主要内容:数据类型对象,数据类型标识码,定义结构化数据NumPy 作为 Python 的扩展包,它提供了比 Python 更加丰富的数据类型,如表 1 所示: 表1:NumPy数据类型 序号 数据类型 语言描述 1 bool_ 布尔型数据类型(True 或者 False) 2 int_ 默认整数类型,类似于 C 语言中的 long,取值为 int32 或 int64 3 intc 和 C 语言的 int 类型一样,一般是 int32 或 int 64

  • 本小节将详述 Numpy 内置的数据类型,以及如何在创建数组对象时进行灵活指定、如何查看创建好的数组类型、以及如何更改数据类型。 1. 常见数据类型 Numpy 支持的数据类型比 Python 内置的要多很多,而这也是 Numpy 如此灵活和强大的原因之一。 例如对于整数,在 Numpy 中,根据整数的位数不同所需要占据的空间大小不同,又对整数类型进行类细分,常见地可以分为 int8、int16、

  • 问题内容: 我在创建numpy数组的numpy数组时遇到问题。我将在一个循环中创建它: 所需结果: 实际结果: 可能吗?我不知道数组的最终尺寸,因此无法使用固定尺寸对其进行初始化。 问题答案: 永远不要在循环中追加数组:与基本的Python相比,这是NumPy非常不擅长的一项操作。这是因为您要对每个数据进行完整复制,这将花费您二次时间。 相反,只需将您的数组附加到Python列表中,并在最后进行转

  • 问题内容: 我在mongodb中有一个字符串字段。,我想将它们全部转换成数组。 我知道我可以遍历所有文档,获取字段,然后更新,但是我想知道是否有更清洁的方法。 谢谢。 问题答案: 您可以在map / reduce的Reduce函数中进行此操作,以将所有处理保留在mongodb中。本质上,您将使用map / reduce将结果放入新集合中,然后可以将其复制回旧集合(或删除旧集合并重命名新集合)。这具