一、NumPy数组属性


NumPy 数组的维数称为秩 (rank),维度称为轴 (axis) ,一维数组的秩为 1,二维数组的秩为 2,以此类推。

在 NumPy中,轴 (axis) 一般是在超过一维数组时作用更大的属性:

  • 一维数组时,axis=0
  • 二维数组时,axis=0, 1
  • N 维数组时,axis=0, 1, …, N

当对某一轴进行操作时,我们可以这样看待:

  • 一维数组,axis=0 表示沿着第 0 轴进行操作,即跨列操作;
  • 二维数组,axis=0 表示沿着第 0 轴进行操作,即跨行操作;axis=1 表示沿着第 1 轴进行操作,即跨列操作
  • 三维数组,axis=0 表示沿着第 0 轴进行操作,即跨表操作;axis=1 表示沿着第 1 轴进行操作,即跨行操作;axis=2 表示沿着第 2 轴进行操作,即跨列操作

ndarray属性表

属性 说明
ndarray.ndim 秩 (rank),即数组的轴(维度)的个数
ndarray.shape 数组形状,返回一个元组表示各个维度中元素的个数
ndarray.size 数组元素的总数,相当于np.prod(ndarray.shape)
ndarray.dtype 数组中每个元素的数据类型和数据 (bit) 大小
ndarray.itemsize 数组中每个元素的字节 (byte) 大小,1 byte=8 bit
ndarray.flags 数组的内存信息
ndarray.real 数组元素的实部
ndarray.imag 数组元素的虚部

ndarray.ndim

ndarray.ndim 返回秩 (rank),即数组的轴(维度)的个数

import numpy as np 
a = np.arange(24)  
print (a.ndim)			# a 现只有一个维度
# 现在调整其大小
b = a.reshape(2,4,3)	# b 现在拥有三个维度
print (b.ndim)

# 输出
1
3

ndarray.shape

ndarray.shape 数组形状,返回一个元组表示各个维度中元素的个数。比如,一个二维数组,其数组形状为 (行数, 列数)

import numpy as np  
a=np.array([[1,2,3],[4,5,6]])  
print(a.shape)

# 输出
(2, 3)

ndarray.shape 也可以用于调整数组结构,但要保证元素的总个数 (size) 不能变

import numpy as np 
a=np.array([[1,2,3],[4,5,6]
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值