[Numpy] 数组属性

 美图欣赏2022/07/26

导入numpy数据包

# 引入Numpy库
import numpy as np

1.数组维度数查询

ndarray.ndmin查询数组的维度 

import numpy as np
# 数组维度
## 维度为1
arr1 = np.array([1,2,3])
arr1.ndim # 1
## 维度为2
arr2 = np.array([[1,2,3],[4,5,6]])
arr2.ndim # 2
## 维度为3
arr3 = np.array([
        [[1,2,3],[4,5,6]],
        [[7,8,9],[10,11,12]]
       ])
arr3.ndim # 3

2.数组形状查询  

ndarray.shape查询数组的形状(几行几列),返回值是一个元组,里面有几个元素代表是几维数组

import numpy as np
arr1 = np.array([1,2,3])
arr1.shape # (3,)

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

arr3 = np.array([
        [[1,2,3],[4,5,6]],
        [[7,8,9],[10,11,12]]
       ])
arr3.shape # (2,2,3)

ndarray.shape也可以改变数组形状

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

arr4

arr4(处理后) 

3.修改数组形状 

.reshape函数可以改变原数组的形状,创建一个新数组,改变新数组的元素,原数组对应元素的值也会发生改变 

# NumPy提供了.reshape函数来调整数组大小形状
import numpy as np

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

arr = data.reshape(6,) # array([1, 2, 3, 4, 5, 6])
arr.shape # (6,)

arr[0] = 437
arr # array([437, 2, 3, 4, 5, 6])

data # array([[437,   2,   3],
     #        [  4,   5,   6]])

.flatten函数可实现扁平化(多维数组转化为一维数组)  

import numpy as np

arr = np.array([
        [[1,2,3],[4,5,6]],
        [[7,8,9],[10,11,12]]
      ])
arr.ndim # 3

deal_arr = arr.flatten() # array([1,2,3,4,5,6,7,8,9,10,11,12])
deal_arr.ndim # 1

4.数组元素个数与所占内存查询 

ndarray.size查询数组元素个数

ndarray.itemsize查询数组中每个元素所占内存的大小(以字节为单位)

import numpy as np

arr = np.array([
        [[1,2,3],[4,5,6]],
        [[7,8,9],[10,11,12]]
      ])
# 数组的元素个数
arr.size # 12
# 各元素所占内存
arr.itemsize # 4
# 各元素的数据类型
arr.dtype # dtype('int32')
# 数组所占内存
arr.itemsize * arr.size # 48

# 数组的dtype为int8(一个字节)
data1 = np.array([1,2,3,4,5], dtype = np.int8)
data1.itemsize # 1

# 数组的dtype现在为float64(八个字节)
data2 = np.array([1,2,3,4,5], dtype = np.float64)
data2.itemsize # 8

5.元素数据类型查询

ndarray.dtype用于返回ndarray对象的元素类型 

import numpy as np
arr1 = np.array([[1,2,3],[4,5,6]])  
arr1.dtype # dtype('int32')
arr2 = np.array([1.2, 2.3, 3.4])
arr2.dtype # dtype('float64')
### Numpy 数组的使用方法与示例教程 NumpyPython 中用于数值计算的核心库,其核心功能是对多维数组的支持。以下是关于 Numpy 数组的一些基本概念和常见操作。 #### 创建 Numpy 数组 可以通过多种方式创建 Numpy 数组,常见的有 `np.array` 和其他专用函数如 `np.zeros`, `np.ones`, 或者从已有的列表转换而来[^2]。 ```python import numpy as np # 从列表创建数组 arr_from_list = np.array([1, 2, 3]) # 创建全零矩阵 zeros_matrix = np.zeros((3, 4)) # 创建全一矩阵 ones_matrix = np.ones((2, 3)) ``` #### 基本属性 每种 Numpy 数组都有特定的属性来描述它的维度、大小和其他特征。 - **shape**: 表示数组的尺寸 (行数×列数)。 - **dtype**: 数据类型的说明符。 - **ndim**: 维度数量。 ```python array_example = np.array([[1, 2], [3, 4]]) print(array_example.shape) # 输出: (2, 2) print(array_example.dtype) # 输出: int64 print(array_example.ndim) # 输出: 2 ``` #### 数组拼接 对于多个 Numpy 数组之间的连接操作,可以利用 `np.concatenate` 函数实现按指定轴方向进行合并[^1][^4]。 ```python a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6]]) result_row_concat = np.concatenate((a, b), axis=0) # 按行拼接 result_col_concat = np.concatenate((a.T, b.T), axis=1).T # 转置后再按列拼接并转回原状 ``` #### 数组运算 支持逐元素算术运算以及广播机制下的复杂表达式求解[^3]。 ```python addition_result = a + result_row_concat[:len(a)] # 加法演示 multiplication_result = addition_result * array_example # 乘法规则应用 ``` #### 形状变换 调整现有数组结构而不改变实际存储顺序可通过 `.reshape()` 方法完成;而展平高阶张量到向量形式可调用`.flatten()`. ```python reshaped_array = ones_matrix.reshape(-1) # 将二维变一维 flattened_version = reshaped_array.flatten() ``` 以上就是有关于 Numpy 的一些基础知识及其实战技巧概览。希望这些内容能够帮助理解该工具包的强大之处!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值