numpy.array#
- numpy.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None)#
创建一个数组.
- 参数:
- objectarray_like
数组、任何暴露数组接口的对象、其
__array__
方法返回数组的对象,或任何(嵌套的)序列.如果对象是标量,则返回包含该对象的 0 维数组.- dtype数据类型, 可选
数组所需的数据类型.如果未指定,NumPy 将尝试使用一个默认的
dtype
来表示这些值(必要时应用提升规则.)- copybool, 可选
如果
True``(默认),则数组数据将被复制.如果 ``None
,只有在__array__
返回一个副本、如果 obj 是一个嵌套序列,或者如果需要复制以满足其他要求(dtype
、order
等)时才会进行复制.请注意,任何数据的复制都是浅拷贝,即,对于对象 dtype 的数组,新数组将指向相同的对象.请参见ndarray.copy
的示例.对于False
,如果无法避免复制,则会引发ValueError
.默认值:True
.- order{‘K’, ‘A’, ‘C’, ‘F’}, 可选
指定数组的内存布局.如果对象不是数组,新创建的数组将按C顺序(行优先),除非指定了’F’,在这种情况下它将按Fortran顺序(列优先).如果对象是数组,则以下规则适用.
order
不复制
copy=True
‘K’
unchanged
F & C 顺序保留,否则保持最相似的顺序
‘A’
unchanged
如果输入是 F 而不是 C,则按 F 顺序排列,否则按 C 顺序排列
‘C’
C 顺序
C 顺序
‘F’
F 订单
F 订单
当
copy=None
并且由于其他原因创建了一个副本时,结果与copy=True
相同,但对于 ‘A’ 有一些例外,请参见备注部分.默认顺序是 ‘K’.- subokbool, 可选
如果为真,则子类将被传递,否则返回的数组将被强制为基类数组(默认).
- ndminint, 可选
指定结果数组应具有的最小维度数.将根据需要将一前置到形状中以满足此要求.
- likearray_like, 可选
引用对象以允许创建不是 NumPy 数组的数组.如果作为
like
传递的类数组对象支持__array_function__
协议,结果将由它定义.在这种情况下,它确保创建一个与通过此参数传递的对象兼容的数组对象.在 1.20.0 版本加入.
- 返回:
- outndarray
满足指定要求的数组对象.
参见
empty_like
返回一个形状和类型与输入相同的空数组.
ones_like
返回一个形状和类型与输入相同的由1组成的数组.
zeros_like
返回一个形状和类型与输入相同的零数组.
full_like
返回一个形状与输入相同的新数组,并用值填充.
empty
返回一个新的未初始化的数组.
ones
返回一个新数组,将值设置为一.
zeros
返回一个将值设置为零的新数组.
full
返回一个给定形状并用值填充的新数组.
copy
返回给定对象的数组副本.
备注
当顺序为 ‘A’ 且
object
是一个既不是 ‘C’ 也不是 ‘F’ 顺序的数组,并且由于 dtype 的变化而强制复制时,结果的顺序不一定如预期的 ‘C’.这可能是一个错误.示例
>>> import numpy as np >>> np.array([1, 2, 3]) array([1, 2, 3])
向上转换:
>>> np.array([1, 2, 3.0]) array([ 1., 2., 3.])
多于一个维度:
>>> np.array([[1, 2], [3, 4]]) array([[1, 2], [3, 4]])
最小尺寸 2:
>>> np.array([1, 2, 3], ndmin=2) array([[1, 2, 3]])
提供的类型:
>>> np.array([1, 2, 3], dtype=complex) array([ 1.+0.j, 2.+0.j, 3.+0.j])
由多个元素组成的数据类型:
>>> x = np.array([(1,2),(3,4)],dtype=[('a','<i4'),('b','<i4')]) >>> x['a'] array([1, 3], dtype=int32)
从子类创建数组:
>>> np.array(np.asmatrix('1 2; 3 4')) array([[1, 2], [3, 4]])
>>> np.array(np.asmatrix('1 2; 3 4'), subok=True) matrix([[1, 2], [3, 4]])