下面是Python numpy.find_common_type()函数的完整攻略。
函数介绍
numpy.find_common_type()
函数用于确定多个数组中公共的数据类型。
函数签名如下:
numpy.find_common_type(types, reference=None)
参数解释:
types
:要比较的数据类型序列,可以是列表、元组或numpy.ndarray。reference
:参考数据类型,可选参数,可以使任何numpy数据类型,如果指定了reference
参数,则find_common_type
会尝试找到最大公共类型,该类型比reference
大,并且可表示在types中找到的任何数据类型。
返回值:找到的公共数据类型。
函数示例
示例1
我们先看一个简单的示例,比较两个numpy数组的数据类型,并找到它们的公共类型:
import numpy as np
dt = np.dtype([('name', np.unicode_, 16), ('grades', np.float64, (2,))])
a = np.array([(b'joe', [4, 7]), (b'bill', [6, 7])], dtype=dt)
b = np.array([(b'sue', [80, 85]), (b'sara', [8, 9])], dtype=dt)
common_dtype = np.find_common_type([a.dtype, b.dtype], [])
print(common_dtype)
输出结果为:
[('name', '<U16'), ('grades', '<f8', (2,))]
示例2
下面我们再看一个更复杂的示例,用find_common_type()
函数来解析一个csv文件的数据类型:
import numpy as np
import csv
# 读取CSV文件获取数据类型
csvfile = open('data.csv', 'r')
csvreader = csv.reader(csvfile)
# 从文件中获取数据类型
header = next(csvreader)
dt = []
for h in header:
dt.append((h, np.float))
# 读取CSV文件获取数据
data = np.genfromtxt('data.csv', delimiter=',', names=True, dtype=dt)
# 获取数据类型
common_dtype = np.find_common_type(data.dtype, [])
print(common_dtype)
在这个示例中,我们首先读取了一个csv文件并获取了其中的数据类型。然后将这些数据存储到一个numpy结构化数组中,并调用find_common_type()
函数获取了这个数组的公共类型。
另外,需要注意的是,在这个示例中我们使用了numpy中的genfromtxt()
函数来读取csv文件。该函数可以直接将csv文件解析成为numpy结构化数组。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python numpy.find_common_type()函数 - Python技术站