这里是否需要numpy.asarray()?

时间:2019-04-16 20:14:01

标签: python numpy

我正在遵循Francois Chollet所著的《用Python进行深度学习》一书中的示例。 有一个例子(第70页),他们将一个int数组转换为一个float32数组

相关行是

from keras.datasets import imdb
(tr_data, tr_labels), (ts_data, ts_labels) = imdb.load_data(num_words=10000)
...
import numpy as np
y_train = np.asarray(tr_labels).astype('float32')

tr_labels只是一个整数数组

array([1, 0, 0, ..., 0, 1, 0])

y_train是float32的数组

array([1., 0., 0., ..., 0., 1., 0.], dtype=float32)

但是当这似乎可以解决问题时,为什么我们需要调用np.asarray()

y_train = tr_labels.astype('float32')

只是想知道numpy.asarray()是否进行了一些我不知道的其他数据处理。

1 个答案:

答案 0 :(得分:0)

否,没有必要。

np.asarray有时很有用,如果您不确定数据类型是什么(或是否可以更改),并且如果输入已经是{{1 }},因此如果ndarray已经是一个数组,就不应该放慢速度。同样,如果您想允许tr_labels的子类,则可以使用ndarray,它将通过np.asanyarray的任何子类(例如稀疏数组等)进行传递,而无需额外复制。这些只是现有数据中许多array creation functions numpy提供的两个示例。通常有多个正确答案,但有时一个答案可能比另一个答案更有效(在内存方面)。