Numpy数据处理(全面)

Numpy基本属性

import numpy as np
#list列表转化为矩阵
arr1 = np.array([[1,1,1],[2,2,2],[3,3,3]],dtype=np.int)
print('矩阵维度:',arr1.ndim)
print('矩阵行和列数:',arr1.shape)
print('矩阵元素个数:',arr1.size)

Numpy 创建数组(array)

import numpy as np
#list列表转化为矩阵
arr1 = np.array([[1,1,1],[2,2,2],[3,3,3]],dtype=np.float)
#创建全零数组
arr2 = np.zeros((3,3))
#创建全1数组
arr3 = np.ones((3,3))
#创建全空数组, 每个值都是接近于零的数
arr4 = np.empty((3,3))
#创建1-200的数据,步长为3
arr5 = np.arange(1,201,3)
#reshape 改变数据的形状
arr6 = np.arange(9).reshape((3,3))
#开始为1,结束端100,且分割成50个数据
arr7 = np.linspace(1,100,50)

Numpy计算

import numpy as np
#list列表转化为矩阵
arr1 = np.array([[1,1,1],[2,2,2],[3,3,3]])
arr2 = np.arange(9).reshape((3,3))
print("arr1和arr2的和为:\n",arr1+arr2)
print("arr1和arr2的差为:\n",arr1-arr2)
print("arr1和arr2的积为:\n",arr1*arr2)
print("arr1和arr2的商为:\n",arr1/arr2)
print("arr1的平方为:\n",arr1**2)
print("arr1的sin值为:\n",np.sin(arr1))
print("arr1的布尔判断为:\n",arr1<5)
print("arr1和arr2矩阵相乘为:\n",np.dot(arr1,arr2),arr1.dot(arr2))
print("arr1所有元素和为:\n",np.sum(arr1))
print("arr1所有元素中最大值和最小值为:\n",np.max(arr1),np.min(arr1))
print("arr1的最大值索引为:\n",np.argmax(arr1))
print("arr1的最小值索引为:\n",np.argmin(arr1))
print("arr1的平均值为:\n",np.mean(arr1),np.average(arr1),arr1.mean())
print("arr1的中位数为:\n",np.median(arr1))
print("arr1逐个累加后的列表为:\n",np.cumsum(arr1))
print("arr1每一行中后一项与前一项之差为:\n",np.diff(arr1))
print("arr1非零元素对应的行号和列号为:\n",np.nonzero(arr1))
print("arr1每行排序后为:\n",print(np.sort(arr1)))
print("arr1转置后为:\n",np.transpose(arr1),arr1.T)
#判断矩阵中元素是否有比最小值小的或者比最大值大的元素,并将这些指定的元素转换为最小值或者最大值
print("arr1控制最大值最小值后为:\n",np.clip(arr1,0,2))
#将多维的矩阵进行展开成1行的数列
print("arr1展开成1行的数列为(视图):\n",arr1.ravel())
print("arr1展开成1行的数列为(新对象):\n",arr1.flatten())
#逐个读取矩阵元素
for data6 in arr1.flat:
    print(data6)

Numpy索引

import numpy as np
#list列表转化为矩阵
arr1 = np.array([[1,1,1],[2,2,2],[3,3,3]])
#一维索引
data1=arr1[0]
#二维索引
data2=arr1[0][1]
data3=arr1[0,1]
#读取指定行列
data4=arr1[1, 0:2]

Numpy数组(array)合并

import numpy as np
arr1 = np.array([[1,1,1],[2,2,2],[3,3,3]])
arr2 = np.array([[4,4,4],[5,5,5],[6,6,6]])
print("arr1和arr2上下合并:\n",np.vstack((arr1,arr2)))
print("arr1和arr2左右合并:\n",np.hstack((arr1,arr2)))
print("插入新维度,加一个维度(行):\n",arr1[np.newaxis,:])
print("插入新维度,加一个维度(列):\n",arr1[:,np.newaxis])
print("四个数组上下合并:\n",np.concatenate((arr1,arr1,arr2,arr1),axis=0))
print("四个数组左右合并:\n",np.concatenate((arr1,arr1,arr2,arr1),axis=1))

Numpy array 分割

import numpy as np
arr1 = np.array([[1,1,1],[2,2,2],[3,3,3]])
arr2 = np.array([[4,4,4],[5,5,5],[6,6,6]])
print("arr1和arr2上下合并:\n",np.vstack((arr1,arr2)))
print("arr1和arr2左右合并:\n",np.hstack((arr1,arr2)))
print("插入新维度,加一个维度(行):\n",arr1[np.newaxis,:])
print("插入新维度,加一个维度(列):\n",arr1[:,np.newaxis])
print("四个数组上下合并:\n",np.concatenate((arr1,arr1,arr2,arr1),axis=0))
print("四个数组左右合并:\n",np.concatenate((arr1,arr1,arr2,arr1),axis=1))
print("arr1等量纵向分割\n",np.split(arr1, 3, axis=1),np.hsplit(arr1, 3))
print("arr1等量横向分割\n",np.split(arr1, 3, axis=0),np.vsplit(arr1, 3))
print("arr1不等量纵向分割\n",np.array_split(arr1,2, axis=1))
print("arr1不等量横向分割\n",np.array_split(arr1,2, axis=0))

Numpy复制

import numpy as np
arr1 = np.array([[1,1,1],[2,2,2],[3,3,3]])
#复制数组
arr2 = arr1.copy()

Numpy随机数

import numpy as np
print("产生3行3列[0, 1)之间随机数数组:\n",np.random.rand(3,3))
print("产生一个[0, 1)之间随机数:\n",np.random.rand())
print("产生3行3列[low, high)中均匀分布的数组:\n",np.random.uniform(1,10,(3,3)))
print("产生一个[low, high)之间随机数:\n",np.random.uniform(1,10))
print("产生3x3个服从标准正态分布(均值为0,方差为1)的数组:\n",np.random.randn(3,3))
print("产生一个服从标准正态分布(均值为0,方差为1)的随机数:\n",np.random.randn())
print("产生3x3个值服从 μ=loc,σ=scale 的正态分布的数组:\n",np.random.normal(0,1,(3,3)))
print("产生一个值服从 μ=loc,σ=scale 的正态分布的随机数:\n",np.random.normal(0,1))
print("产生3x3个区间[low, high)中离散均匀抽样的数组:\n",np.random.randint(1,10,(3,3)))
print("产生一个区间[low, high)中离散均匀抽样的随机数:\n",np.random.randint(1,10))
print("产生3x3个区间[0, 1)之间均匀抽样的数组:\n",np.random.random((3, 3)))
print("产生一个区间[0, 1)之间均匀抽样的随机数:\n",np.random.random())
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值