Python 使用元组初始化NumPy数组(使用相同的元组填充)

Python 使用元组初始化NumPy数组(使用相同的元组填充),python,arrays,numpy,tuples,Python,Arrays,Numpy,Tuples,我想创建一个数组,最初填充相同的元组,特别是NaN元组。 例如: 但是,当使用列出的数组初始值时,例如使用iterable值作为填充数组的值,python显然试图将该iterable重新塑造为新数组,而不是用它填充: np.full([3,2],(np.nan,np.nan,np.nan),dtype=tuple) #ValueError: could not broadcast input array from shape (3) into shape (3,2) np.fill也不起作用,

我想创建一个数组,最初填充相同的元组,特别是
NaN
元组。 例如:

但是,当使用列出的数组初始值时,例如使用iterable值作为填充数组的值,
python
显然试图将该iterable重新塑造为新数组,而不是用它填充:

np.full([3,2],(np.nan,np.nan,np.nan),dtype=tuple)
#ValueError: could not broadcast input array from shape (3) into shape (3,2)
np.fill
也不起作用,它需要标量


是否只能逐项填充数组?

您可以使用正确的
数据类型来填充数组。使用
'f,f'
可以使用
浮动元组初始化数组;更多信息,请参阅

np.full((3,2), np.nan, dtype='f,f')

array([[(nan, nan), (nan, nan)],
       [(nan, nan), (nan, nan)],
       [(nan, nan), (nan, nan)]], dtype=[('f0', '<f4'), ('f1', '<f4')])
np.full((3,2),np.nan,dtype='f,f')
数组([[(nan,nan),(nan,nan)],
[(楠,楠),(楠,楠)],

[(楠,楠),(楠,楠)],数据类型=[('f0','在问题中提供代码,而不是提供链接,或者提供代码本身的显式链接。您实际打算如何处理这些元组?接受的答案实际上并没有用元组填充数组。它创建了一个结构化数组,将元素显示为元组。在处理对象数组时,您可以d、 “相同的元组”和“相同的元组”之间有区别。@hpaulj这是一个数组的初始化,其元素将在相同形状的元组数组中包含最大浮点值。因此,是的,如果我理解正确,它是相同的,“相同”意味着引用一个元组。谢谢-这可能是一个dif不同的问题,但是元组中的元素不再是
np.nan
A[0,0][0]是np.nan
返回false?虽然
math.isnan
返回true。这是因为
np.nan!=np.nan
(尝试一下)。您需要使用
np.isnan(A[0,0][0])
@joceThanks-我在别处见过语法
是np.nan
,但我现在意识到它有多错-意思是“是同一个内存对象”。
np.full((3,2), np.nan, dtype='f,f')

array([[(nan, nan), (nan, nan)],
       [(nan, nan), (nan, nan)],
       [(nan, nan), (nan, nan)]], dtype=[('f0', '<f4'), ('f1', '<f4')])