当前位置:   article > 正文

numpy的简单实用操作_numpy 操作

numpy 操作

1、创建ndarray(一种多维数组对象)

    创建数组最简单的办法就是使用array函数。它接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的NumPy数组

  1. import numpy as np
  2. data = np.array([1,2,3])
  3. print(data)
'
运行

除np.array之外,还有一些函数也可以新建数组。比如,zeros和ones分别可以创建指定长度或形状的全0或全1数组。empty可以创建一个没有任何具体值的数组。

2、数组的拆分

(1)numpy.reshape 给数组一个新的形状而不改变其数据

 

(2)垂直拆分:numpy.vsplit

  1. import numpy as np
  2. c = np.arange(1,13).reshape(6,2)
  3. print(c)
  4. np.vsplit(c,3)
'
运行

 

(3)  水平拆分:numpy.hsplit

  1. import numpy as np
  2. c = np.arange(1,13).reshape(6,2)
  3. d =c.T
  4. print(d)
  5. np.hsplit(d,3)
'
运行

3、numpy基本加减和取行操作

  1. import numpy as np
  2. a = np.array([1,1,1,1])
  3. b = np.array([[1],[1],[1],[1]])
  4. print(a+b)
  5. c = np.array([[1,1,1,1]])
  6. print(c+b)
'
运行

4、矩阵删除、插入、尾部添加操作(delete,insert,append)

numpy矩阵操作主要有delete()、insert()、append()等函数,分别执行删除、插入和添加的操作,注意append可以看为insert函数的特殊情况,即在尾部补充可以看为插入最后一行或列

(1)delete()函数

  1. import numpy as np
  2. matrix = [
  3. [1,2,3,4],
  4. [5,6,7,8],
  5. [9,10,11,12]
  6. ]
  7. p1 = np.delete(matrix, 1, 0) # 第0维度(行)第1行被删除(初始行为0行)
  8. print(p1)
  9. p2 = np.delete(matrix, 1, 1) # 第1维度(列)第1行被删除
  10. print(p2)
  11. p3 = np.delete(matrix, 1) # 拉平后删除第1个元素(初始为第0个)
  12. print(p3)
  13. p4 = np.delete(matrix, [0,1], 1) # 第1维度(列)第0、1行被删除
  14. print(p4)
'
运行

 

(2)insert()函数

  1. import numpy as np
  2. matrix = [
  3. [1,2,3,4],
  4. [5,6,7,8],
  5. [9,10,11,12]
  6. ]
  7. q1 = np.insert(matrix, 1, [1,1,1,1], 0) # 第0维度(行)第1行添加[1,1,1,1]
  8. print(q1)
  9. q2 = np.insert(matrix, 0, [1,1,1], 1) # 第1维度(列)第0列添加1,1,1
  10. print(q2)
  11. q3 = np.insert(matrix, 3, [1,1,1,1], 0) # 第0维度(行)第3行添加[1,1,1,1]
  12. print(q3)
'
运行

 

(3)append()函数

  1. import numpy as np
  2. matrix = [
  3. [1,2,3,4],
  4. [5,6,7,8],
  5. [9,10,11,12]
  6. ]
  7. m1 = np.append(matrix,[[1,1,1,1]],axis=0)
  8. #第0维度(行)尾部添加[[1,1,1,1]],注意两个[],相同维度
  9. print(m1)
  10. m2 = np.append(matrix,[[1],[1],[1]],axis=1)
  11. #第1维度(列)尾部添加[[1],[1],[1]],注意两个[],相同维度
  12. print(m2)
  13. m3 = np.append(matrix,[1,1,1,1])
  14. #拉平后再尾部添加[1,1,1,1],这里可以[[1,1,1,1]]和[1,1,1,1]均可
  15. print(m3)
'
运行

 

5、np.random.choice(a, size, replace, p)

a是生成一维数组的来源,可以是int类型,可以是数组,也可以是list
size 数组的维度replace 表示从a中是否不重复抽取,默认可重复 p 给出抽取概率,默认随机

 

6、np.argmax(a, axis=None, out=None)

作用是返回轴的最大值的索引值
a:需要操作的数组或者矩阵,默认情况拉平成数组
axis:默认将a拉平,当axis=0对a按列取最大值索引,axis=1则对a按行取最大值索引
out:将结果写到a中

 

7、np.prod() 计算元素乘积

默认计算矩阵所有元素的乘积,也可以通过axis计算指定轴的乘积

 

把矩阵大于或小于N的元素置M的技巧

技巧包括 maximum() 函数 、minimum() 函数,以及 矩阵操作的技巧

8、np.zeros_like()构造全零矩阵,无需指定大小

复制矩阵的维度,但是元素全是0

9、random.rand和random.rand和random.randint区别

(1)产生随机浮点数

np.random.rand() 生成均匀分布矩阵
创建一个矩阵,服从[0,1]随机分布

(2)np.random.randn() 生成正太分布矩阵

创建一个矩阵,服从N(0,1)标准正太分布。
一般正太分布N = ( μ , σ 2 ) N=(\mu ,\sigma^2)N=(μ,σ 2 )可通过 sigma * np.random.randn(…) + m 实现

 

(3)np.randm.randint() 生成离散均匀分布的整数值组成的矩阵
numpy.random.randint(low,high=None,size=None,dtype)
生成半开半闭区间[low, high)上离散均匀分布的整数值,未给出high时,区间变为[0, low)

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/968993
推荐阅读
相关标签
  

闽ICP备14008679号