numpy – 数组vs asarray
 Numpy的array()和asarray()函数有什么asarray() ? 你应该什么时候使用一个,而不是另一个? 他们似乎为我能想到的所有input产生相同的输出。 
  asarray的定义是: 
 def asarray(a, dtype=None, order=None): return array(a, dtype, copy=False, order=order) 
 所以它就像array ,除了它有更less的选项,并copy=False 。  array默认情况下具有copy=True 。 
 主要区别在于array (默认情况下)将会创build对象的副本,而asarray除非必要,否则不会创build该副本。 
这个差别可以通过这个例子来certificate:
- 
生成一个matrix >>> A = numpy.matrix(np.ones((3,3))) >>> A matrix([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.]])
- 
使用 numpy.array来修改A由于您正在修改副本而不起作用>>> numpy.array(A)[2]=2 >>> A matrix([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.]])
- 
使用 numpy.asarray来修改A它的工作原因是你正在修改A本身>>> numpy.asarray(A)[2]=2 >>> A matrix([[ 1., 1., 1.], [ 1., 1., 1.], [ 2., 2., 2.]])
希望这可以帮助!
 在array和asarray的文档中提到了这些差别。 差异在于参数列表,因此函数的作用取决于这些参数。 
函数定义如下:
 numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0) 
和
 numpy.asarray(a, dtype=None, order=None) 
 以下参数是可以传递给array而不是像文档中提到的asarray那样的参数: 
copy:bool,可选如果为true(默认),则复制该对象 。 否则,只有在
__array__返回一个副本时,如果obj是一个嵌套序列,或者需要一个副本来满足任何其他需求(dtype,order等),才会进行复制。subok:bool,可选如果为True,则子类将被传递 ,否则返回的数组将被强制为基类数组(默认值)。
ndmin:int,可选指定结果数组应具有的最小维数 。 为了满足这个要求,我们将根据需要预先设定形状。