Numpy-python

Numpy

数组、矩阵

import numpy as np

#数组
t1 = np.array([1,2,3]) #out:[1 2 3] 数组
t2 = np.array(range(10)) #[0 1 2 3 4 5 6 7 8 9]
t3 = np.arange(4,10,2) #[4 6 8]
t4 = np.linspace(1,10,5)#1-10之间平均分5段

# 矩阵
a = np.array([[1,2,3],
              [3,4,5]])
a1 = np.zeros((3,4)) #三行四列的 全零矩阵
a2 = np.ones((3,4))#三行四列的 全 1 矩阵
a3 = np.arange(12).reshape((3,4))#三行四列从0-11 的矩阵
a4 = np.linspace(1,10,5).reshape((2,3))#1-10之间平均分5段,并构成矩阵

随机生成一组数据-random的方法

1 无规律随机数

numpy.random.rand(4,2)  #随机生成4行2列 无规律数据

rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1

2 随机生成 满足 标准正态分布 数据

numpy.random.randn(42) #符合标准正态分布的 四行两列数据

3 随机生成整数

data = np.random.randint(10,20,(6,9)) #随机生成【10,20)区间的6行9列数据
print(pd.DataFrame(data))

4 符合均匀分布的随机数

np.random.uniform(0.5,1.0,n) #生成在【0.5,1.0)内n个随机数

基础运算

import numpy as np

a = np.array([10,20,30,40])
b = np.arange(0,4)
c = np.array([
    [1,2],
    [3,4]
])
d = np.arange(0,4).reshape((2,2))
#求最值
np.sum(a)
np.sum(a,axis=1) # 每一行 求和
np.sum(a,axis=0) # 每一列 中求和
np.min(a)
np.max(a)
#加减法
c1 = a - b
c2 = a + b
#三角函数
c3 = np.sin(a)
#矩阵计算
c4 = np.dot(c,d) # 矩阵相乘
c5 = d * c # 矩阵中对应元素 逐个相乘
np.mean(d) # 矩阵求平均值
np.median(d) # 中位数
np.sort(d) # 逐行排序
np.transpose(d) # 转置
np.clip(d,5,9) # 小于5 的数置为5 大于9的数置为9 ,中间的数保持不变
# 矩阵索引
np.argmin(d) # 矩阵中 最小值的 索引
np.argmax(d)

索引 矩阵遍历

import numpy as np

a = np.arange(3,15)
b = np.arange(3,15).reshape((3,4))

# 一维数组索引
a[3]

# 二维矩阵
b[2] #矩阵第三行
b[1][1] #第一行第一列
b[2,:] #第二行所有数
b[:,1] #第一列所有数

#遍历行列
for row in b : #默认遍历的是行
    print(row)
for column in np.transpose(b) : #将b 转置后 遍历就是遍历的列
    print(column)

#遍历每个元素
for item in b.flat:
    print(item)

array 合并

import numpy as np

a = np.array([1,1,1])
b = np.array([2,2,2])

np.vstack((a,b)) # 列合并 为一个矩阵
#out:
# [[1 1 1]
#  [2 2 2]]

print(np.hstack((a,b))) #行合并
#out
# [1 1 1 2 2 2]


array 分割

import numpy as np

a = np.arange(12).reshape((3,4))

print(np.split(a,2,axis=1)) #两列两列的切割
print(np.vsplit(a,3))#纵向分割成三块 纵向的绳子分割成三分
np.hsplit(a,3) #横向分割为三块 

浅拷贝和深拷贝

import numpy as np

a = np.array([1,1,2])
b = a #浅拷贝 改变 a 的同时, b 也会改变
b = a.copy() # 深拷贝,改变 a 的同时, b 不会改变
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值