numpy的简单实用操作

  • Post author:
  • Post category:其他


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

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

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

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

2、数组的拆分

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

(2)垂直拆分:numpy.vsplit

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

(3)  水平拆分:numpy.hsplit

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

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

import numpy as np
a = np.array([1,1,1,1])
b = np.array([[1],[1],[1],[1]])
print(a+b)

c = np.array([[1,1,1,1]])
print(c+b)

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

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

(1)delete()函数

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

(2)insert()函数

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

(3)append()函数

import numpy as np
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
m1 = np.append(matrix,[[1,1,1,1]],axis=0)

#第0维度(行)尾部添加[[1,1,1,1]],注意两个[],相同维度
print(m1)
m2 = np.append(matrix,[[1],[1],[1]],axis=1)

#第1维度(列)尾部添加[[1],[1],[1]],注意两个[],相同维度
print(m2)
m3 = np.append(matrix,[1,1,1,1])

#拉平后再尾部添加[1,1,1,1],这里可以[[1,1,1,1]]和[1,1,1,1]均可
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)



版权声明:本文为qq_55321850原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。