ndarray 的常用属性及函数

博客介绍了NumPy相关内容,包含NumPy函数和属性、NumPy.ndarray函数和属性、NumPy.random函数和属性,还提到每个统计函数可按行和列统计计算,axis=1沿横轴,axis=0沿纵轴。

A NumPy函数和属性:

类型类型代码说明
int8、uint8i1、u1有符号和无符号8位整型(1字节)
int16、uint16i2、u2有符号和无符号16位整型(2字节)
int32、uint32i4、u4有符号和无符号32位整型(4字节)
int64、uint64i8、u8有符号和无符号64位整型(8字节)
float16f2半精度浮点数
float32f4、f单精度浮点数
float64f8、d双精度浮点数
float128f16、g扩展精度浮点数
complex64c8分别用两个32位表示的复数
complex128c16分别用两个64位表示的复数
complex256c32分别用两个128位表示的复数
bool?布尔型
objectOpython对象
stringSn固定长度字符串,每个字符1字节,如S10
unicodeUn固定长度Unicode,字节数由系统决定,如U10

表2.1.A.1 NumPy类型

生成函数作用
np.array( x)将输入数据转化为一个ndarray
np.array( x, dtype)将输入数据转化为一个类型为type的ndarray
np.asarray( array )将输入数据转化为一个新的(copy)ndarray
np.ones( N )生成一个N长度的一维全一ndarray
np.ones( N, dtype)生成一个N长度类型是dtype的一维全一ndarray
np.ones_like( ndarray )生成一个形状与参数相同的全一ndarray
np.zeros( N)生成一个N长度的一维全零ndarray
np.zeros( N, dtype)生成一个N长度类型位dtype的一维全零ndarray
np.zeros_like(ndarray)类似np.ones_like( ndarray )
np.empty( N )生成一个N长度的未初始化一维ndarray
np.empty( N, dtype)生成一个N长度类型是dtype的未初始化一维ndarray
np.empty(ndarray)类似np.ones_like( ndarray )
np.eye( N )创建一个N * N的单位矩阵(对角线为1,其余为0)
np.identity( N )N的单位矩阵(对角线为1,其余为0)
np.arange( num)生成一个从0到num-1步数为1的一维ndarray
np.arange( begin, end)生成一个从begin到end-1步数为1的一维ndarray
np.arange( begin, end, step)生成一个从begin到end-step的步数为step的一维ndarray
np.mershgrid(ndarray, ndarray,…)生成一个ndarray * ndarray * …的多维ndarray
np.where(cond, ndarray1, ndarray2)根据条件cond,选取ndarray1或者ndarray2,返回一个新的ndarray
np.in1d(ndarray, [x,y,…])检查ndarray中的元素是否等于[x,y,…]中的一个,返回bool数组

矩阵函数说明2
np.diag( ndarray)以一维数组的形式返回方阵的对角线(或非对角线)元素
np.diag( [x,y,…])将一维数组转化为方阵(非对角线元素为0)
np.dot(ndarray, ndarray)矩阵乘法
np.trace( ndarray)计算对角线元素的和

排序函数说明
np.sort( ndarray)排序,返回副本
np.unique(ndarray)返回ndarray中的元素,排除重复元素之后,并进行排序
np.intersect1d( ndarray1, ndarray2)返回二者的交集并排序。
np.union1d( ndarray1, ndarray2)返回二者的并集并排序。
np.setdiff1d( ndarray1, ndarray2)返回二者的差。
np.setxor1d( ndarray1, ndarray2)返回二者的对称差

B NumPy.ndarray函数和属性:

属性说明
ndarray.ndim获取ndarray的维数
ndarray.shape获取ndarray各个维度的长度
ndarray.dtype获取ndarray中元素的数据类型
ndarray.T简单转置矩阵ndarray

表2.1.B.1 ndarray属性

函数说明
ndarray.astype(dtype)转换类型,若转换失败则会出现TypeError
ndarray.copy()复制一份ndarray(新的内存空间)
ndarray.reshape((N,M,…))将ndarray转化为NM…的多维ndarray(非copy)
ndarray.transpose((xIndex,yIndex,…))根据维索引xIndex,yIndex…进行矩阵转置,依赖于shape,不能用于一维矩阵(非copy)
ndarray.swapaxes(xIndex,yIndex)交换维度(非copy)
计算函数说明
ndarray.mean( axis=0 )求平均值
ndarray.sum( axis= 0)求和
ndarray.cumsum( axis=0)累加
ndarray.cumprod( axis=0)累乘
ndarray.std()方差
ndarray.var()标准差
ndarray.max()最大值
ndarray.min()最小值
ndarray.argmax()最大值索引
ndarray.argmin()最小值索引
ndarray.any()是否至少有一个True
nndarray.dot( ndarray)计算矩阵内积
排序函数说明
ndarray.sort(axis=0)排序,返回源数据

表2.1.B.2 ndarray函数

ndarray[n]选取第n+1个元素
ndarray[n:m]选取第n+1到第m个元素
ndarray[:]选取全部元素
ndarray[n:]选取第n+1到最后一个元素
ndarray[:n]选取第0到第n个元素
ndarray[ bool_ndarray ]注:bool_ndarray表示bool类型的ndarray选取为true的元素
ndarray[[x,y,m,n]]…选取顺序和序列为x、y、m、n的ndarray
ndarray[n,m]选取第n+1行第m+1个元素
ndarray[n][m]选取第n+1行第m+1个元素
ndarray[n,m,…]选取n行n列…的元素表2.1.B.3 ndarray索引/切片方式
ndarray[n][m]…选取n行n列…的元素表2.1.B.3 ndarray索引/切片方式

C NumPy.random函数和属性:

函数说明
seed()确定随机数生成种子
seed(int)确定随机数生成种子
seed(ndarray)确定随机数生成种子
permutation(int)返回一个一维从0~9的序列的随机排列
permutation(ndarray)返回一个序列的随机排列列
shuffle(ndarray)对一个序列就地随机排列
rand(int)产生int个均匀分布的样本值
randint(begin,end,num=1)从给定的begin和end随机选取num个整数
randn(N, M, …)生成一个NM…的正态分布(平均值为0,标准差为1)的ndarray
normal(size=(N,M,…))生成一个NM…的正态(高斯)分布的ndarray
beta(ndarray1,ndarray2)产生beta分布的样本值,参数必须大于0
chisquare()产生卡方分布的样本值
gamma()产生gamma分布的样本值
uniform()产生在[0,1)中均匀分布的样本值

注意: 每个统计函数都可以按行和列来统计计算; 当 axis=1 时,表示沿着横轴计算; 当 axis=0 时,表示沿着纵轴计算;

`np.ndarray` 是 NumPy 库中的核心数据结构,用于表示多维数组。它是一个高效的数值计算工具,支持多种操作和属性。以下是对 `np.ndarray` 的详细介绍,包括其创建、属性和常见用法。 --- ### 创建 `np.ndarray` 可以通过多种方式创建 `np.ndarray`,例如从 Python 列表、元组或其他数组生成。 #### 示例代码 ```python import numpy as np # 从列表创建 ndarray arr_from_list = np.array([1, 2, 3, 4]) print("From List:\n", arr_from_list) # 从嵌套列表创建二维 ndarray arr_from_nested_list = np.array([[1, 2], [3, 4]]) print("From Nested List:\n", arr_from_nested_list) # 使用 arange 创建一维数组 arr_arange = np.arange(0, 10, 2) # 起始值为 0,结束值为 10(不包含),步长为 2 print("Using arange:\n", arr_arange) # 使用 zeros 创建全零数组 arr_zeros = np.zeros((3, 3)) # 3x3 全零矩阵 print("Using zeros:\n", arr_zeros) # 使用 ones 创建全一数组 arr_ones = np.ones((2, 4)) # 2x4 全一矩阵 print("Using ones:\n", arr_ones) ``` --- ### `np.ndarray` 的属性 `np.ndarray` 提供了许多有用的属性来描述数组的形状、数据类型等信息。 #### 常用属性 1. **`ndarray.shape`**: 数组的维度。 2. **`ndarray.dtype`**: 数组中元素的数据类型。 3. **`ndarray.size`**: 数组中元素的总数。 4. **`ndarray.ndim`**: 数组的维度数。 #### 示例代码 ```python arr = np.array([[1, 2, 3], [4, 5, 6]]) # 获取 shape print("Shape:", arr.shape) # 输出 (2, 3) # 获取 dtype print("Dtype:", arr.dtype) # 输出 int64(具体取决于系统) # 获取 size print("Size:", arr.size) # 输出 6 # 获取 ndim print("Ndim:", arr.ndim) # 输出 2 ``` --- ### 常用操作 `np.ndarray` 支持丰富的操作,包括索引、切片、重塑、转置等。 #### 索引和切片 ```python arr = np.array([[1, 2, 3], [4, 5, 6]]) # 索引 print("Element at (0, 1):", arr[0, 1]) # 输出 2 # 切片 print("Slice first row:", arr[0, :]) # 输出 [1 2 3] print("Slice second column:", arr[:, 1]) # 输出 [2 5] ``` #### 重塑和转置 ```python arr = np.array([[1, 2, 3], [4, 5, 6]]) # 重塑 reshaped_arr = arr.reshape(3, 2) print("Reshaped Array:\n", reshaped_arr) # 转置 transposed_arr = arr.T print("Transposed Array:\n", transposed_arr) ``` --- ### 解释 1. **创建方式**: - 可以通过 `np.array` 从 Python 列表或嵌套列表创建。 - 使用函数如 `np.zeros`、`np.ones` 和 `np.arange` 快速生成特定模式的数组。 2. **属性**: - `shape` 描述了数组的维度大小。 - `dtype` 决定了数组中元素的数据类型。 - `size` 表示数组中元素的总个数。 - `ndim` 表示数组的维度数。 3. **操作**: - 索引和切片允许访问数组中的特定元素或子数组。 - 重塑可以改变数组的形状而不改变其数据。 - 转置会交换数组的行和列。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lonelypatients°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值