多维数组的sum;max;min

class Matrix2 
{
   
public static void main(String args[]) 
   {
      
int m[][] = { { 6224 }, { -5876 }, { -3-18-4166 } };
      
int row = 0;
      
int col = 0;//放最大元素的行号和列号
      int row2 = 0;
      
int col2 = 0;//放最小元素的行号和列号
      int max, min, sum = 0;
      max 
= m[0][0];
      min 
= m[0][0];
      System.out.println(
"该二维数组中的最高维数为:" + m.length);
      System.out.print(
"该二维数组中的元素有:");
      
for(int i = 0; i < m.length; i ++ ) 
      {
         
for(int j = 0; j < m[i].length; j ++ ) 
         {
            sum 
+= m[i][j];//隐含计算
            System.out.print(m[i][j] + " ");
         }
      }
      System.out.println();
      min 
= sum / 2;//把min改为中间值,以防没有负数
      for(int i = 0; i < m.length; i ++ ) 
      {
         
for(int j = 0; j < m[i].length; j ++ ) 
         {
            
if(m[i][j] > max) 
            {
               max 
= m[i][j];
               row 
= i;
               col 
= j;
            }
            
if(m[i][j] < min) 
            {
               min 
= m[i][j];
               row2 
= i;
               col2 
= j;
            }
         }
      }
      System.out.println(
"所有元素的和为:" + sum);
      System.out.println(
"最大元素是:" + max);
      System.out.println(
"该元素位置在:" + row + "" + col + "");
      System.out.println(
"最小元素是:"+min);
      System.out.println(
"该元素位置在:"+row2+""+col2+"");
   }
}
 
### 关于 NumPy 多维数组的详细解释和用法 NumPy 的核心功能之一是对多维数组的支持,这种支持不仅体现在数据结构本身,还在于高效的数组操作以及丰富的内置函数。以下是有关 NumPy 多维数组的核心概念及其常见用法的详细介绍。 --- #### 1. **什么是 NumPy 多维数组** NumPy 提供了一种名为 `ndarray` 的对象,用于存储同类型的元素集合。这些元素可以被组织成任意维度的形式,从而形成一维、二维或多维数组[^1]。 - **特点**: 高效内存管理、矢量化运算能力、支持广播机制。 - **用途**: 科学计算、数据分析、机器学习等领域广泛使用。 --- #### 2. **创建 NumPy 多维数组** ##### 基本创建方法 可以通过多种方式创建 NumPy 数组: - 使用 `np.array()` 方法从 Python 列表或其他序列化数据转换而来。 ```python import numpy as np # 创建一维数组 arr_1d = np.array([1, 2, 3]) # 创建二维数组 arr_2d = np.array([[1, 2], [3, 4]]) # 创建三维数组 arr_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) ``` ##### 特殊数组生成 除了手动定义外,还可以通过一些特殊函数自动生成特定模式的数组: - `np.zeros()`: 创建全零数组。 - `np.ones()`: 创建全一阵列。 - `np.empty()`: 不初始化值的数组(可能含有随机垃圾值)。 - `np.arange(start, stop, step)`: 类似 Python 的 `range()` 函数,但返回的是 NumPy 数组。 - `np.linspace(start, stop, num_points)`: 在指定范围内均匀分布一定数量的点。 示例代码如下: ```python zeros_arr = np.zeros((3, 4)) # 形状为(3, 4)的全零数组 ones_arr = np.ones((2, 2)) # 形状为(2, 2)的全一阵列 arange_arr = np.arange(0, 10, 2) # 范围内的步长数组 linspace_arr = np.linspace(0, 1, 5)# 等间距划分区间 ``` --- #### 3. **多维数组的关键属性** | 属性名 | 描述 | |------------|----------------------------------------------------------------------------------------| | `.shape` | 表示数组的形状,返回一个元组 `(dim1_size, dim2_size, ...)` | | `.dtype` | 数据类型描述符,指明数组中元素的数据类型 | | `.size` | 总共包含的元素个数 | | `.ndim` | 维度数目 | 示例演示: ```python example_array = np.random.rand(2, 3, 4) print("Shape:", example_array.shape) # 输出: Shape: (2, 3, 4) print("Data Type:", example_array.dtype) # 输出: Data Type: float64 或其他实际类型 print("Size:", example_array.size) # 输出: Size: 24 print("Dimensions:", example_array.ndim) # 输出: Dimensions: 3 ``` --- #### 4. **索引与切片** NumPy 支持类似于 Python 列表的索引和切片语法,但在多维情况下更为强大[^2]。 ##### 单元素访问 通过逗号分隔多个索引来定位单个元素的位置。 ```python arr = np.array([[1, 2, 3], [4, 5, 6]]) element = arr[1, 2] # 访问第二行第三列的元素 -> 结果为 6 ``` ##### 子数组提取 利用切片语法 `[start:end:step]` 可以轻松截取子区域。 ```python sub_array = arr[:, :2] # 截取所有行前两列 -> 结果为 [[1, 2], [4, 5]] ``` ##### 条件筛选 结合布尔掩码实现条件过滤。 ```python filtered = arr[arr > 3] # 找出大于3的所有元素 -> 结果为 [4, 5, 6] ``` --- #### 5. **高级特性:广播与转置** ##### 广播机制 即使两个数组形状不完全一致,在某些条件下仍可完成逐元素运算,这被称为广播。 ```python a = np.array([1, 2, 3]) # 形状为 (3,) b = np.array([[1], [2], [3]]) # 形状为 (3, 1) result = a + b # 自动扩展并加法 -> 结果为 [[2, 3, 4], [3, 4, 5], [4, 5, 6]] ``` ##### 转置操作 改变数组轴顺序以便重新排列数据布局。 ```python original = np.array([[1, 2], [3, 4]]) transposed = original.T # .T 是 transpose() 的快捷写法 -> 结果为 [[1, 3], [2, 4]] ``` --- #### 6. **查找与统计** 对于复杂查询需求,可通过组合逻辑表达式或专用工具完成[^3]。 - 查找满足条件的索引位置: ```python indices = np.where(vals == [1, 0]) # 寻找等于 [1, 0] 的所有坐标 ``` - 统计汇总信息: ```python mean_val = np.mean(arr) # 计算平均值 sum_val = np.sum(arr) # 求和 max_val = np.max(arr) # 最大值 min_val = np.min(arr) # 最小值 ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值