numpy的简单实用操作

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)

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值