python学习之numpy使用

#NumPy数据库学习
#Numpy包含一下特点:
'''
1.强大的N维数组对象。
2.成熟的函数库。
3.用于集成c/c++和Fortran代码工具
4.实用的线性代数,傅里叶变换和随机生成函数。
'''
import numpy as np
#4.1:属性

array = np.array([[1,2,3],[4,5,6]])#将列表转换为矩阵,并转换为int类型

print(array)

print('array of dim is',array.ndim)#矩阵的维度

print('array of shape is',array.shape)#矩阵的行数和列数

print('array of size is',array.size)#矩阵元素个数

#4.2 :numpy:numpy创建Array

1,array:创建数组

2,dtype:指定数据类型

3,zeros:创建数据全为零

4,ones:创建数据全为一

5,empty:创建数据接近零

6,arange:指定范围内创建数据

7,linspace:创建线段

#创建数组

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

print(a)

#指定数据dtype

a = np.array([1,2,3],dtype=np.int)#指定为int形

print(a.dtype)

b = np.array([1,2,3,4],dtype=np.float)#指定为浮点型

print(b.dtype)

#创建特定数据

a = np.array([[1,2,3],[4,5,6]])#创建特定数据

print(a)

#创建全0数组

a = np.zeros((2,3))#全0两行三列

print(a)

#创建全1数组,指定特定类型int

a = np.ones((2,3),dtype=np.int)

print(a)

#创建全空数组 每个数值接近0

a = np.empty([2,3])

print(a)

#array创建连续数组

a = np.arange(1,10,3)#1到10,步长为3

print(a)

#reshape改变数据形状

a = np.arange(6).reshape(2,3)

print(a)

#用linespace创建线段型数据

a = np.linspace(1,10,20)#1开始,10结束,创建10个数据

print(a)

#4.3 NumPy基础运算
#基础运算只加减乘除

a = np.array([10,20,30,40])

b = np.arange(4)

print(b)

c = a+b#加法运算

print(c)

d = a-b

print(d)#减法运算

e = 10*np.sin(a)#三角函数运算

print(e)

print(b<3)#逻辑判断

f = np.random.random([2,3])#随机生成两行三列的举证

print(f)

g = np.sum(b)#函数求和

print(g)

h = np.max(b)#求元素最大值最小值

i = np.min(b)

print(h)

print(i)

#多维数矩阵运算

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

print(a)

b = np.arange(4).reshape(2,2)

print(b)

c = a.dot(b)#c = dot(a,b) 矩阵相乘相乘计算

print(c)

#对行或列进行查找运算

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

print(np.max(a,axis=0))#按行求和最大值

print(np.max(a,axis=1))#按列求和最大值

print(np.min(a,axis=0))

print(np.min(a,axis=1))

#矩阵索引操作

a = np.arange(2,14).reshape(3,4)

print(a)

print(np.argmax(a))#矩阵中最大元素的索引

print(np.argmin(a))#矩阵中最小元素的索引

print(np.mean(a))#求解矩阵均值

print(np.average(a))

print(np.cumsum(a))#矩阵累加函数

print(np.diff(a))#矩阵累差函数

print(np.nonzero(a))#将非0元素的行与列坐标分割开来

#矩阵的排序转置替换

a = np.arange(14,2,-1).reshape(3,4)

print(a)

print(np.sort(a))#排序

print(np.transpose(a))#转置

print(np.clip(a,5,9))#判断当前矩阵元素是否比最小值小或比最大值大,若是则替换

#一维索引

a = np.arange(0,12)

print(a)

print(a[1])

b = np.arange(0,12).reshape(3,4)

print(b)

print(b[1])#第二行

#二维索引

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

print(a)

print(a[1,1])

print(a[1,1:3])#切片处理

for row in a:

print(row)

for col in a:

print(col)

for item in a.flat:

print(item)

#array置array合并

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

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

print(np.vstack((a,b)))#上下合并

print(np.hstack((a,b)))#左右合并

#增加维度

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

print(a.shape)

print(a[np.newaxis,:])

print(a[np.newaxis].shape)#newaxis增加维度

print(a[:,np.newaxis])

print(a[:,np.newaxis].shape)

#多矩阵合并

a = np.array([1,1,1])[:,np.newaxis]

b = np.array([2,2,2])[:,np.newaxis]

print(np.concatenate((a,b,b,a),axis=0))#表示上下合并

print(np.concatenate((a,b,b,a),axis=1))

#矩阵分割

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

print(a)

print(np.split(a,3,axis=0))#横向分割三部分np.vsplit(a,3)

print(np.split(a,2,axis=1))#竖向分割三部分

print(np.array_split(a,3,axis=1))#不等量分割三部分

#copy 与 deep copy

= 具有关联性

a = np.arange(4)

b = a

c = a

d = b

print(b is a)

d[0] = 5

print(a)

#copy赋值方法没有关联性

a = np.arange(4)#deep copy

print(a)

b = a.copy()

print(b)

print(a)

b[0] = 5

print(b)

print(a)

转载于:https://blog.51cto.com/13965173/2234616

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值