Numpy基础一

1.Nump属性——–

# ndim:维度
# shape:行数和列数
# size:元素个数

import numpy as np
array=np.array([[1,2,3],[2,3,4]])#列表转化为矩阵
print(array)

print('number of dim:',array.ndim)
print('shape:',array.shape)
print('size:',array.size)

2.numpy创建array
关键字
array:创建数组
dtype:指定数据类型
zeros:创建数据全为0
ones:创建数据全为1
empty:创建数据接近0
arrange:按指定范围创建数据
linspace:创建线段

#创建数组
a=np.array([2,23,4])
print(a)
#指定数据类型
a=np.array([2,23,4],dtype=np.int)
print(a.dtype)

a=np.array([2],dtype=np.int32)
print(a.dtype)

a=np.array(3,dtype=np.float)
print(a.dtype)
a=np.array(2,dtype=np.float32)
print(a.dtype)
#创建特定数据

a=np.array([[2,23,4],[2,23,4]])    # 2d 矩阵 2行3列
print(a)

a=np.zeros((3,4))     # 数据全为0,3行4列
print(a)

a=np.ones((3,4),dtype=int) # 数据为1,3行4列
print(a)

a=np.empty((3,4))  # 数据为empty,3行4列,创建全空数组, 其实每个值都是接近于零的数
print(a)

#用 arange 创建连续数组
a=np.arange(10,20,2) # 10-19 的数据,2步长
print(a)

#使用 reshape 改变数据的形状
a=np.arange(12).reshape((3,4))  # 3行4列,0到11
print(a)

#用 linspace 创建线段型数据:
a = np.linspace(1,10,20)  # 开始端1,结束端10,且分割成20个数据,生成线段
print(a)

a=np.linspace(1,10,10).reshape(2,5)
print(a)

3.numpy运算

#numpy基础运算
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4) #array([0,1,2,3])

c=a-b     #[10 19 28 37]

c=a+b     #[10 21 32 43]

c=a*b     #[  0  20  60 120]   对象元素相乘

#幂的运算
c=b**3    #[ 0  1  8 27]

#Numpy中含有很多数学函数,如三角函数
c=10*np.sin(a)   #[-5.44021111  9.12945251 -9.88031624  7.4511316 ]

#print函数进行一些修改,进行逻辑判断
print(b<3)       #[ True  True  True False]
print(b==1)      #[False  True False False]   判断是否相等,用‘==’不是‘=’


#多行多维矩阵运算
a=np.array([[1,1],[0,1]])
b=np.arange(4).reshape((2,2))
print(a)
#[[1 1]
# [0 1]]
print(b)
#[[0 1]
# [2 3]]

#矩阵的标准乘法
c_dot=np.dot(a,b)
print(c_dot)
# array([[2, 4],
#       [2, 3]])

#另一种dot表示方式
c_dot_2=a.dot(b)
print(c_dot_2)
# array([[2, 4],
#       [2, 3]])
#sum(),min(),max()
import numpy as np
a=np.random.random((2,4))   #生成2行4列的矩阵,每个元素为0~1之间随机数
print(a)
print('a的sum=',np.sum(a))
print('a的min=',np.min(a))
print('a的max=',np.max(c))

[[ 0.7564823 0.14431434 0.63184266 0.40914991]
[ 0.13402718 0.2912754 0.11097813 0.37879589]]
a的sum= 2.85686579992
a的min= 0.1109781307
a的max= 9.12945250728

#按行或者按列运算  axis=0按列查找,axis=1按行查找
print('a=',a)
print('sum=',np.sum(a,axis=1))
print('min=',np.min(a,axis=0))
print('max=',np.max(a,axis=1))

a= [[ 0.7564823 0.14431434 0.63184266 0.40914991]
[ 0.13402718 0.2912754 0.11097813 0.37879589]]
sum= [ 1.9417892 0.9150766]
min= [ 0.13402718 0.14431434 0.11097813 0.37879589]
max= [ 0.7564823 0.37879589]

import numpy as np
A=np.arange(2,14).reshape((3,4))
print(np.argmin(A))    #0           #argmin最小元素的索引,argmax最大元素的索引
print(np.argmax(A))    #11
print(np.mean(A))      #7.5  求均值
print(np.average(A))   #7.5  求均值
print(A.mean())        #7.5  求均值另一种方式
print(np.median(A))    #7.5  求中位数
print(np.cumsum(A))    #[ 2  5  9 14 20 27 35 44 54 65 77 90]    累加函数
print(np.diff(A))      # [[1 1 1]
                       #  [1 1 1]
                       #  [1 1 1]]     diff该函数计算的每一行中后一项与前一项之差。故一个3行4列矩阵通过函数计算得到的矩阵便是3行3列的矩阵
print(np.nonzero(A))   #(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]))
import numpy as np
A=np.arange(14,2,-1).reshape((3,4))
print(A)

print('对每行从小到大排序:')
print(np.sort(A))
print('对每列从小到大排序:')
print(np.sort(A,axis=0))

#矩阵转置
print('转置:')
print(np.transpose(A))
print(A.T)

#clip()
print('clip函数:')
print(A)
print(np.clip(A,5,9))  #clip(array,array_min,array_max),矩阵中比array_max都大的值改变成array_max,比array_min小的值都改变成array_min

输出:

矩阵A:
[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
对每行从小到大排序:
[[11 12 13 14]
 [ 7  8  9 10]
 [ 3  4  5  6]]
对每列从小到大排序:
[[ 6  5  4  3]
 [10  9  8  7]
 [14 13 12 11]]
转置:
[[14 10  6]
 [13  9  5]
 [12  8  4]
 [11  7  3]]
[[14 10  6]
 [13  9  5]
 [12  8  4]
 [11  7  3]]
clip函数:
[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
[[9 9 9 9]
 [9 9 8 7]
 [6 5 5 5]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值