数组常用函数有哪些

常用的数组函数示例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <h2>请按F12</h2>
</body>
</html>
<script>
    

  // 返回数组长度
  var str = [1, 5, 5, 63, 4, 5, 5];
  console.log(str.length);

  // push 向数组的末尾添加一个或更多元素,并返回新的长度
  const a = [1, 2, 3, 4];
  const aa = a.push(2);
  console.log("数组的新长度" + aa);
  console.log("新数组" + a);

  // unshift 向数组的开头添加一个或更多元素,并返回新的长度
  const b = [2, 5, 6, 7, 8];
  const bb = b.unshift(3);
  console.log("数组新长度" + bb);
  console.log("新数组" + b);

  // pop 删除数组的最后一个元素返回删除的元素
  const c = [1, 2, 5, 4, 8, 4, 6, 5];
  const cc = c.pop();
  console.log("删除元素是" + cc);
  console.log("新数组" + c);

  // shift 删除并返回数组的第一个元素
  const d = [1, 2, 3, 4, 5, 6];
  const dd = d.shift();
  console.log("删除的元素是" + dd);
  console.log("新数组" + d);

  // reverse  反转数组的元素顺序
  const e = [1, 2, 3, 4, 5];
  const ee = e.reverse();
  console.log("反转的数组为" + ee);
  console.log("原数组为" + e);

  // find 返回符合传入测试(函数)条件的数组元素
  const f = [1, 2, 3, 4, 5];
  get = num => {
    return num > 3;
    // 这里接判断符号
  };
  const ff = f.find(get); // 函数要放在前面
  console.log("比3大的第一个元素是" + ff);

  // findIndex 返回符合传入测试(函数)条件的数组元素索引(下标)
  const g = [1, 2, 3, 4, 5];
  set = num => {
    return num == 2;
    // 如果要查找2的位置,应该用 == 来进行判断,是否等于2,是的话返回坐标
  };
  const gg = g.findIndex(set);
  console.log("2的第一个在数组gg里的坐标为" + gg);

  // slice 选取数组的一部分,并返回一个新数组
  const h = [1, 2, 3, 4, 5, 6];
  console.log("截取坐标0到4的数组" + h.slice(0, 4));
  // 这里不包含坐标为4的数值
  const hh = ["a", "b", "c", "d"];
  console.log("读取左边1和3的两个字符串" + hh.slice(1, 3));
  // 注意是不包含后面那个坐标的

  //splice 从数组中添加或删除元素
  const i = [1, 2, 3, 4, 5, 6];
  const num = i.splice(1, 0, "7");
  console.log("i.splice(1, 0, '7'):在坐标为1的地方添加7:" + i);
  i.splice(3, 1);
  console.log("i.splice(3,1):在坐标为3的地方删除一个数:" + i);

  // join 把数组的所有元素放入一个字符串
  const j = [1, 2, 3, 4, 5];
  const stre = j.join();
  console.log(stre);

  // forEach 迭代数组
  const k = [1, 2, 3, 4, 5];
  fun = (item, index) => {
    console.log("index" + index + ":" + item);
  };
  k.forEach(fun);
  // 遍历数组

  // map 通过指定函数处理数组的每个元素,并返回处理后的数组
  const l = [1, 2, 3, 4, 5, 6];
  sum = num => {
    return (num += 1);
    console.log("每项+1:" + num);
  };
  l.map(sum);
  // 不难发现,不管什么函数都需要返回值才能在外部生效

  // filter 过滤 检测数值元素,并返回符合条件所有元素的数组
  const m = [1, 2, 3, 5, 4, 8];
  bi = num => {
    return num > 2;
  };
  const mm = m.filter(bi);
  console.log("比2大的所有元素的数组为:" + mm);

  // indexOf 搜索数组中的元素,并返回它所在的位置
  const n = [1, 2, 3, 5, 4, 6];
  console.log("2在数组里面的位置为:" + n.indexOf(2));

  // includes 判断一个数组是否包含一个指定的值
  const o = [1, 5, 3, 6, 4, 7, 5];
  console.log("判断数组是否包含o:" + o.includes(o)); //false

  // isArray 判断对象是否为数组
  const p = [1, 2, 4, 5, 6, 3, 4];
  console.log("判断是否是数组" + Array.isArray(p)); // true

  // concat 连接两个或更多的数组,并返回结果
  const sums = a.concat(b, c);
  console.log("a、b、c三个数组连接" + sums);

  // sort 对数组的元素进行排序
  console.log("对数组sums排序:" + sums.sort());
</script>
<think>嗯,用户问的是创建NumPy数组函数有哪些。我需要先回忆一下NumPy中常用数组创建方法。首先,最基本的是np.array(),用来从列表或元组创建数组。然后还有像np.zeros()和np.ones()这样的函数,用来生成全零或全一的数组。np.arange()类似于Python的range,但生成数组。还有np.linspace(),用于生成等间隔的数值。特殊数组比如单位矩阵可以用np.eye()或者np.identity()。随机数组的话,可能需要提到np.random模块中的函数,比如np.random.rand()或者np.random.randint()。另外,还有np.empty(),它创建未初始化的数组,内容取决于内存状态。还有np.full(),可以填充指定值。另外,从已有数据创建的话,比如np.copy()或者从文件读取的函数,但用户可能主要关注直接创建的函数。需要把这些函数列出来,并给出每个的简单示例代码。然后还要解释每个函数的作用和参数。比如,zeros和ones需要指定形状,arange的参数是start、stop、step,linspace需要指定数量。可能用户会混淆arange和linspace的区别,这时候解释一下。然后相关问题可以涉及这些函数的具体使用场景,比如如何创建特定形状的数组,或者如何生成随机数组,或者不同初始化方法的性能比较等等。需要确保覆盖主要的创建函数,并且没有遗漏重要的方法。比如还有np.fromfunction()或者np.ones_like()这样的函数,但可能属于进阶内容,用户的问题可能更关注基础。所以重点放在常用函数上,给出示例和解释。最后,相关问题应该围绕这些函数的深入使用,或者与其他方法的对比,或者实际应用中的问题。</think>NumPy提供了多种创建数组函数,以下是常用的方法及示例代码: 1. **从列表/元组创建** ```python import numpy as np arr = np.array([1, 2, 3, 4]) # 一维数组 matrix = np.array([[1, 2], [3, 4]]) # 二维数组 ``` 2. **预初始化数组** ```python zeros_arr = np.zeros(5) # 创建全0数组 ones_matrix = np.ones((2, 3)) # 创建全1矩阵 empty_arr = np.empty(4) # 创建未初始化数组 full_arr = np.full((2,2), 7) # 填充指定值 ``` 3. **数值序列生成** ```python range_arr = np.arange(0, 10, 2) # [0 2 4 6 8] lin_arr = np.linspace(0, 1, 5) # [0. 0.25 0.5 0.75 1. ] ``` 4. **特殊矩阵** ```python identity = np.eye(3) # 3x3单位矩阵 diagonal = np.diag([1,2,3]) # 对角矩阵 ``` 5. **随机数组** ```python rand_arr = np.random.rand(3) # [0~1)均匀分布 randn_arr = np.random.randn(2,2) # 标准正态分布 randint_arr = np.random.randint(5, 10, size=(3,3)) # 5-10的随机整数 ``` 6. **从现有数据创建** ```python copy_arr = np.copy(identity) asarray_arr = np.asarray([[1,2], [3,4]]) # 类似array但避免不必要的复制 ``` **代码解释:** - `zeros()`/`ones()`:接收shape参数,支持多维数组创建 - `arange()`:参数为(start, stop, step),类似Python的range - `linspace()`:参数为(start, stop, num),生成等分数列 - `random`模块方法:需注意均匀分布和正态分布的区别 - `empty()`:创建未初始化数组时,其内容取决于内存状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值