我想将两个类型为
这会导致错误。我该怎么做才能纠正这个错误?
如果我将向量附加到自身(即:
numpy版本:
np.datetime64
和int
的numpy数组附加到另一个数组中。这会导致错误。我该怎么做才能纠正这个错误?
如果我将向量附加到自身(即:
np.append(c,c,axis=1)
或np.append(a,a,axis=1)
),则不会出现错误。numpy版本:
1.14.3
import numpy as np
a = np.array([['2018-04-01T15:30:00'],
['2018-04-01T15:31:00'],
['2018-04-01T15:32:00'],
['2018-04-01T15:33:00'],
['2018-04-01T15:34:00']], dtype='datetime64[s]')
c = np.array([0,1,2,3,4]).reshape(-1,1)
c
Out[2]:
array([[0],
[1],
[2],
[3],
[4]])
d = np.append(c,a,axis=1)
Traceback (most recent call last):
File "/home/user/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2963, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-3-10548a83d1a2>", line 1, in <module>
d = np.append(c,a,axis=1)
File "/home/user/anaconda3/lib/python3.6/site-packages/numpy/lib/function_base.py", line 5166, in append
return concatenate((arr, values), axis=axis)
TypeError: invalid type promotion
dtype
和shape
是什么?请记住,NumPy 数组只有一个dtype
(尽管它可能是复合类型)。 - hpauljnp.append
的习惯。这是一种使用np.concatenate
的名称不当的方式。 - hpauljnp.concatenate
的建议。您能否向一个numpy新手解释为什么np.concatenate
比np.append
更好?提前感谢! - user7468395np.concatenate
是基础函数。看一下np.append
的代码。它只是调整了输入(只有两个),然后调用concatenate
。但更重要的是,人们往往会误用它,认为它就像列表的 append 一样。它不是。还有几个使用concatenate
的stack
函数。np.stack
可能是其中最有用的。但你也可以看看它们的代码。 - hpaulj