03.Numpy数组属性

shape

这一数组属性返回一个包含数组维度的元组,它也可以用于调整数组大小。

示例

>>> a = np.array([[1, 2, 3], [4, 5, 6]])
>>> a.shape
(2, 3)
>>> a.shape = 3, 2
>>> a.shape
(3, 2)
>>> a
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> b = a.reshape(6, 1)
>>> b
array([[1],
       [2],
       [3],
       [4],
       [5],
       [6]])                     

ndim

这一数组属性返回数组的维数。

示例

>>> a = np.arange(24)
>>> a.ndim
1
>>> b = a.reshape(2, 3, 4)
>>> b.ndim
3

size

这一数组属性返回数组中元素个数。

示例

In [36]: a = np.arange(24)                                                 
                                                                           
In [37]: a                                                                 
Out[37]:                                                                   
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 
       17, 18, 19, 20, 21, 22, 23])                                        
                                                                           
In [38]: a.size                                                            
Out[38]: 24                                                                

itemsize

这一数组属性返回数组中每个元素的字节单位长度。

示例

>>> x = np.array([1, 2, 3, 4, 5], dtype=np.int8)
>>> x
array([1, 2, 3, 4, 5], dtype=int8)
>>> x.itemsize
1
>>> x = np.array([1, 2, 3, 4, 5], dtype=np.float)
>>> x
array([1., 2., 3., 4., 5.])
>>> x.itemsize
8

flags

ndarray对象拥有以下属性。这个函数返回了它们的当前值。

序号属性及描述
1.C_CONTIGUOUS (C) 数组位于单一的、C 风格的连续区段内
2.F_CONTIGUOUS (F) 数组位于单一的、Fortran 风格的连续区段内
3.OWNDATA (O) 数组的内存从其它对象处借用
4.WRITEABLE (W) 数据区域可写入。 将它设置为flase会锁定数据,使其只读
5.ALIGNED (A) 数据和任何元素会为硬件适当对齐
6.UPDATEIFCOPY (U) 这个数组是另一数组的副本。当这个数组释放时,源数组会由这个数组中的元素更新

示例

下面的例子展示当前的标志。

>>> x = np.array([1, 2, 3, 4, 5], dtype=np.float)
>>> x.flags
  C_CONTIGUOUS : True
  F_CONTIGUOUS : True
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False

imag

ndarray.imag 用来输出数组包含元素的虚部。

real

ndarray.real用来输出数组包含元素的实部。

>>> a = np.arange(12).reshape(3, 4)
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
>>> b = np.array(a, dtype=np.complex)
>>> b
array([[ 0.+0.j,  1.+0.j,  2.+0.j,  3.+0.j],
       [ 4.+0.j,  5.+0.j,  6.+0.j,  7.+0.j],
       [ 8.+0.j,  9.+0.j, 10.+0.j, 11.+0.j]])
>>> b.imag
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])
>>> b.real
array([[ 0.,  1.,  2.,  3.],
       [ 4.,  5.,  6.,  7.],
       [ 8.,  9., 10., 11.]])

转载于:https://www.cnblogs.com/oneTOinf/p/10480340.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
numpy数组元素周围的操作可以通过以下几种方式实现: 1. 切片操作:可以使用numpy数组的切片操作来获取数组中元素的周围元素。 例如,对于一个二维数组arr,要获取第i行第j列元素周围的元素,可以使用如下切片操作: ```python arr[i-1:i+2, j-1:j+2] ``` 这将返回一个3x3的子数组,其中心元素为arr[i,j],周围的8个元素为该子数组的其余元素。 2. 使用numpy.pad()函数:numpy.pad()函数可以用来在数组的边缘添加一个或多个值,从而扩展数组的大小。可以使用该函数来添加额外的行和列,然后通过索引访问周围的元素。 例如,对于一个二维数组arr,要获取第i行第j列元素周围的元素,可以使用如下代码: ```python padded_arr = np.pad(arr, ((1, 1), (1, 1)), mode='constant') surrounding = padded_arr[i:i+3, j:j+3] ``` 这将在数组的边缘添加一行和一列,并使用常量值填充这些额外的元素。然后可以使用切片操作来获取中心元素周围的元素。 3. 使用numpy.roll()函数:numpy.roll()函数可以用来沿着给定轴滚动数组的元素。可以使用该函数来将数组的行和列进行滚动,从而获取周围的元素。 例如,对于一个二维数组arr,要获取第i行第j列元素周围的元素,可以使用如下代码: ```python rows, cols = arr.shape row_indices = np.arange(i-1, i+2) % rows col_indices = np.arange(j-1, j+2) % cols surrounding = arr[row_indices][:, col_indices] ``` 这将将第i行向上和向下滚动一行,并将第j列向左和向右滚动一列,从而获取中心元素周围的元素。使用模运算可以确保在数组的边缘滚动时正确处理索引。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值