跳转至

Python | Numpy 字符串数组的 dtype 对象长度

原文:https://www . geesforgeks . org/python-dtype-object-length-of-numpy-array-strings/

在这篇文章中,我们将看到当底层数据是字符串类型时 numpy 对象的数据类型。在 numpy 中,如果给定对象的基础数据类型是字符串,那么对象的数据类型就是数组中最长字符串的长度。这是因为我们不能在 numpy 中创建可变长度字符串,因为 numpy 需要知道应该为字符串分配多少空间。

问题#1 : 给定一个 numpy 数组,其基础数据是字符串类型。找到数据类型。

解决方案:我们将使用numpy.dtype属性来检查给定对象的数据类型。

# importing the numpy library as np
import numpy as np

# Create a numpy array
arr = np.array(['Ela', 'Ed', 'Brook', 'Sia', 'Katherine'])

# Print the array
print(arr)

输出:

现在我们将检查给定数组对象的数据类型,该对象的基础数据是字符串类型。

# Print the dtype
print(arr.dtype)

输出: 正如我们在输出中看到的,给定数组对象的数据类型是'<U9',其中 9 是给定数组对象中最长字符串的长度。

让我们通过检查给定对象中最长字符串的长度来验证这一点。

# Use vectorize function of numpy
length_checker = np.vectorize(len)

# Find the length of each element
arr_len = length_checker(arr)

# Print the length of each element
print(arr_len)

# Print the maximum value
print(arr_len.max())

输出:

问题 2 : 给定一个 numpy 数组,其底层数据为字符串类型。找到数据类型。

解决方案:我们将使用numpy.dtype属性来检查给定对象的数据类型。

# importing the numpy library as np
import numpy as np

# Create a numpy array
arr = np.array(['New York', 'Lisbon', 'Beijing', 'Quebec'])

# Print the array
print(arr)

输出:

现在我们将检查给定数组对象的数据类型,该对象的基础数据是字符串类型。

# Print the dtype
print(arr.dtype)

输出: 正如我们在输出中看到的,给定数组对象的数据类型是'<U8',其中 8 是给定数组对象中最长字符串的长度。

让我们通过检查给定对象中最长字符串的长度来验证这一点。

# Use vectorize function of numpy
length_checker = np.vectorize(len)

# Find the length of each element
arr_len = length_checker(arr)

# Print the length of each element
print(arr_len)

# Print the maximum value
print(arr_len.max())

输出:



回到顶部