python numpy 的简单操作

import numpy as np

#创建矩阵
array1=np.array([[1,2,3],[4,5,6]])
print(array1)

print('维度:',array1.ndim)
print('形状(行列数):',array1.shape)
print('一共多少元素:',array1.size)

'''
[[1 2 3]
 [4 5 6]]
维度: 2
形状(行列数): (2, 3)
一共多少元素: 6
'''
#定义矩阵,并定义其元素格式

array2=np.array([1,4,7],dtype=np.int) #array的type叫dtype
print(array2.dtype) #int32

array3=np.zeros((4,8)) #加s,4为行数,8为列数
print(array3)
'''
[[0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0.]]
 '''
array4=np.empty((3,4)) #生成接近于0的数
print(array4)
'''
[[6.23042070e-307 1.42417221e-306 1.37961641e-306 1.11261027e-306]
 [1.11261502e-306 1.42410839e-306 7.56597770e-307 6.23059726e-307]
 [1.42419530e-306 7.56602523e-307 1.29061821e-306 2.48283221e-312]]
 '''
#生成有序的矩阵
array5=np.arange(10,20,2) #python中的所有范围都是左闭右开
#array5=np.arange(4)  #从0-3
print(array5) #[10 12 14 16 18]

array6=np.arange(0,12).reshape((3,4))
print(array6)
'''
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
'''
array7=np.linspace(0,10,6).reshape((3,2))
print(array7)
'''
[[ 0.  2.]
 [ 4.  6.]
 [ 8. 10.]]
 '''
import numpy as np
a=np.array([1,2,3,4])
b=np.arange(4)

c=a+b
d=a-b
e=a*b #不是矩阵相乘,而是矩阵里面的每个元素相乘
f=a**2 #同上
print(c,d,e,f) #[1 3 5 7] [1 1 1 1] [ 0  2  6 12] [ 1  4  9 16]

g=np.sin(a) #a中每个元素的sin值
print(g) #[ 0.84147098  0.90929743  0.14112001 -0.7568025 ]

#判断某个元素大于小于或等于一个值
print(a<3) #[ True  True False False]

a1=np.arange(4).reshape((2,2))
b1=np.array([[1,2],[2,1]])
c1=np.dot(a1,b1) #矩阵相乘
#c1=a1.dot(b1) #等价
print(c1)
'''
[[2 1]
 [8 7]]
 '''

#生成随机矩阵
d1=np.random.random((2,5)) #第一个random是模块,第二个random是函数
print(d1)
print(np.sum(d1)) #元素求和
print(np.sum(d1,axis=1)) #axis=1表示一行
print(np.sum(d1,axis=0)) #axis=0表示一列
print(np.max(d1)) #最大最小值(也可以添加axis)
print(np.min(d1))
import numpy as np
a=np.arange(2,16).reshape((2,7))

#找到最大值与最小值的索引(index)
print(np.argmin(a)) #0
print(np.argmax(a)) #13
print(a)
print(np.mean(a)) #求平均值,8.5

print(np.median(a)) #中位数

print(a.T) #转置矩阵

#clip:剪,夹子,削波
print(np.clip(a,4,14)) #将小于4的元素变成4,大于14的元素变成14,中间不变
'''
[[ 4  4  4  5  6  7  8]
 [ 9 10 11 12 13 14 14]]
 '''
#索引
print(a[1,3]) #打印出元素 12
print(a[1,:])   #打印出行   [ 9 10 11 12 13 14 15]
print(a[:,3])   #打印出列   [ 5 12]

for row in a:
    print(row) #numpy默认迭代 行 

for column in a.T:
    print(column) #可通过转置矩阵来迭代列

for item in a.flat:
    print(item)   #flat,可迭代元素
import numpy as np
a=np.array([1,1,1,1])
b=a*2

#合并
c=np.vstack((a,b)) #vertical stack
d=np.hstack((a,b)) #horizontal stack
print(c)
print(d)

print('================================')

#分割
c=np.arange(8).reshape((2,4))
print(c)
'''
[[0 1 2 3]
 [4 5 6 7]]
 '''

print(np.split(c,4,axis=1)) #对行进行切割,切成4份
#print(np.hsplit(c,4)) #等价于上面
'''
[array([[0],
       [4]]), array([[1],
       [5]]), array([[2],
       [6]]), array([[3],
       [7]])]
'''
print(np.array_split(c,3,axis=1)) #不等量分割
'''
[array([[0, 1],
       [4, 5]]), array([[2],
       [6]]), array([[3],
       [7]])]
'''
print(np.split(c,[1,3],axis=1)) #把第一列,第三列单独切割,其他不切割
'''
[array([[0],
       [4]]), array([[1, 2],
       [5, 6]]), array([[3],
       [7]])]
'''

#对列切割,切成两份
print(np.split(c,2,axis=0)) #[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]])]
#print(np.vsplit(c,2))  #等价于上面
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值