Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy数组维数_Python_Arrays_Numpy_Dimensions - Fatal编程技术网

Python Numpy数组维数

Python Numpy数组维数,python,arrays,numpy,dimensions,Python,Arrays,Numpy,Dimensions,我目前正在尝试学习Numpy和Python。给定以下数组: import numpy as np a = np.array([[1,2],[1,2]]) 是否有返回a维度的函数(例如,a是一个2×2数组) size() 它是: ndarray.形状 数组维度的元组 因此: 如果输入不是numpy数组,而是列表列表,也可以使用 >>> a = [[1,2],[1,2]] >>> np.shape(a) (2,2) 或者一个元组的元组 >>>

我目前正在尝试学习Numpy和Python。给定以下数组:

import numpy as np
a = np.array([[1,2],[1,2]])
是否有返回
a
维度的函数(例如,a是一个2×2数组)

size()

它是:

ndarray.形状
数组维度的元组

因此:

如果输入不是numpy数组,而是列表列表,也可以使用

>>> a = [[1,2],[1,2]]
>>> np.shape(a)
(2,2)
或者一个元组的元组

>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
第一: 按照惯例,在Python世界中,
numpy
的快捷方式是
np
,因此:

In [1]: import numpy as np

In [2]: a = np.array([[1,2],[3,4]])
第二: 在Numpy中,维度形状是相关的,有时是类似的概念:

维 在数学/物理学中,维度或维度被非正式地定义为指定空间内任何点所需的最小坐标数。但在Numpy中,根据,它与轴/轴相同:

在Numpy中,尺寸称为轴。轴的数量为秩

轴/轴 以Numpy为
数组
编制索引的第n个坐标。多维数组的每个轴可以有一个索引

In [4]: a[1,0]  # to index `a`, we specific 1 at the first axis and 0 at the second axis.
Out[4]: 3  # which results in 3 (locate at the row 1 and column 0, 0-based index)
形状 描述沿每个可用轴的数据量(或范围)

In [5]: a.shape
Out[5]: (2, 2)  # both the first and second axis have 2 (columns/rows/pages/blocks/...) data

shape
方法要求
a
是一个Numpy数组。但是Numpy也可以计算纯python对象的可重用对象的形状:

np.shape([[1,2],[1,2]])
你可以使用。形状

In: a = np.array([[1,2,3],[4,5,6]])
In: a.shape
Out: (2, 3)
In: a.shape[0] # x axis
Out: 2
In: a.shape[1] # y axis
Out: 3

您可以使用
.ndim
进行尺寸标注,并使用
.shape
了解确切尺寸

var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]])

var.ndim
# displays 2

var.shape
# display 6, 2
您可以使用
。重塑
功能更改尺寸

var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]]).reshape(3,4)

var.ndim
#display 2

var.shape
#display 3, 4

a.shape
只是
np.info()
的有限版本。看看这个:

import numpy as np
a = np.array([[1,2],[1,2]])
np.info(a)
出去


一条建议:您的“尺寸”称为
形状
,单位为NumPy。在您的例子中,NumPy称维度为2(
ndim
)。了解常用的NumPy术语很有用:这使阅读文档更容易!注意:
shape
可能更准确地描述为属性而不是函数,因为它不是使用函数调用语法调用的。@nobar实际上它是一个属性(实际上是属性和函数)@wim更具体地说。对于类属性(放置在类中的属性),它们是作为类的属性公开的property类型的对象。一个属性,在python中,。如果你真的想挑剔,它是一个描述符。虽然
property
本身是一个类,
ndarray.shape
不是一个类,但它是属性类型的一个实例。
np.shape
如果没有shape属性,首先将其参数转换为数组,这就是它在列表和元组示例中工作的原因。您的第一个示例将shape显示为
(2,6)
不是
(6,2)
。请编辑它。
var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]])

var.ndim
# displays 2

var.shape
# display 6, 2
var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]]).reshape(3,4)

var.ndim
#display 2

var.shape
#display 3, 4
import numpy as np
a = np.array([[1,2],[1,2]])
np.info(a)
class:  ndarray
shape:  (2, 2)
strides:  (8, 4)
itemsize:  4
aligned:  True
contiguous:  True
fortran:  False
data pointer: 0x27509cf0560
byteorder:  little
byteswap:  False
type: int32
rows = a.shape[0] # 2 
cols = a.shape[1] # 2
a.shape #(2,2)
a.size # rows * cols = 4