一篇BLOG快速入门Numpy

期末复习阶段着实烦闷,何以解忧,唯有学习打代码
记录一下Numpy基本入门语法

part 1 建立矩阵

import numpy as np

a = np.array([10,20,30,40],dtype = np.float64)
b = np.arange(4,dtype = np.int32)
# c = np.zeros([2,3])
c = np.zeros((2,3))
d = np.zeros_like(c)
e = np.array([[1,2,3],[2,3,4]])
f = np.ones([2,3])
g = np.empty((3,4))
h = np.reshape(b, (2,2))
i = np.linspace(1,10,5)
print(a.dtype)
print(a,b)
print(c,'\n',d)
print(e)
print(f)
print(g)
print(h)
print(i)

part 2 基本运算1

import numpy as np

a = np.array([10,20,30,40],dtype = np.float64)
b = np.arange(4,dtype = np.int32)
# c = np.zeros([2,3])
c = np.zeros((2,3))
d = np.zeros_like(c)
e = np.array([[1,2,3],[2,3,4]])
f = np.ones([2,3])
g = np.empty((3,4))
h = np.reshape(b, (2,2))
i = np.linspace(1,10,5)
j = a - b
k = a * b
l = e * f
m = a ** 2 
n = 10 * np.sin(a)
# o = np.array([1,1],[2,2])  错误写法
o = np.array([[1,1],[2,2]])
p = np.dot(o,h)   #矩阵乘法
q = o.dot(h)
r = np.random.random((2,4))
print(j)
print(k)
print(l)
print(m)
print(n)
print(b<3)
print(o)
print(p)
print(q)
print(r,'\t', np.sum(r),'\t',np.max(r),'\t',np.min(r))
print('列column的sum = ',np.sum(r,axis = 0))
print('行row的sum = ',np.sum(r,axis = 1))
print('列的max = ',np.max(r,axis = 0))

part 3 基本运算2

import numpy as np
A = np.arange(2,14 ).reshape(3,4)
print(np.argmin(A))
print(np.argmax(A))  #索引
print(np.mean(A))        
print(np.average(A))   
print(A.mean())
# 在cumsum()函数中:生成的每一项矩阵元素均是从原矩阵首项累加到对应项的元素之和。比如元素9,在cumsum()生成的矩阵中序号为3,即原矩阵中2,3,4三个元素的和。
print(np.cumsum(A))
# diif函数计算的便是每一行中后一项与前一项之差
print(np.diff(A))
# nonzero函数将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵
print(np.nonzero(A))
B = np.random.random((2,3))
print(B)
print(np.sort(B))
print(np.transpose(A))      #转置
print(A.T)

part 4 numpy索引

import numpy as np
A = np.arange(3,15 )
print(A[4])

B = np.reshape(A, (3,4))
print(B)
print([2])
print(B[2][2],B[2,2],'\n',B[0:2,0:2])
print('-------')
for row in B:
      print(row)
      print('###')
for column in B.T:
      print(column)
      print('===')


np.random.seed(0)
C = np.random.randint(1,10,(3,4))
print('C:',C)
print(C[0])

D = B.flatten()
print('D:',D)
# 这一脚本中的flatten是一个展开性质的函数,将多维的矩阵进行展开成1行的数列。而flat是一个迭代器,本身是一个object属性。
for item in B.flat:
      print(item)
for item in D:
      print(item)

part 5 array 合并

import numpy as np
np.random.seed(0)
A = np.random.randint(1,10,(1,3))
a = np.array([1,2,3])
B = np.random.randint(1,10,(1,3))
C = np.vstack((A,B))  #上下合并  vertical stack
print(A,'\n',B,'\n',C)
print(A.shape,C.shape)
print(A.size,C.size)

D = np.hstack((A, B))  #左右合并 horizontal stack
print(D)
print(A.shape, D.shape)

print('---------------')
print(A.T)
print(A[np.newaxis,:])
print(A[np.newaxis,:].shape)

print('~~~~~~')
print(A[:, np.newaxis])
print(A[:, np.newaxis].shape)

print('****')
# 转置操作无法对其进行转置(因为a并不是矩阵的属性)
print(a.shape)
print(a.T)
print(a.shape)
#解决办法
print(a[np.newaxis,:])
print(a[np.newaxis,:].shape)
print('~~~~~~')
print(a[:, np.newaxis])
print(a[:, np.newaxis].shape)

print(';;;;;')
F = np.concatenate((A, B, A,B),axis = 0)
E = np.concatenate((A,B, A,B),axis = 1)
print(F,F.shape)
print(E,E.shape)

part 6 array 分割

A = np.arange(12).reshape(3,4)
print(A)
print(np.split(A, 4, axis = 1))  #3行4列 split中4表示切成4片,axis = 1 代表按列切
print('等同于')
print(np.hsplit(A,4))
print(np.split(A,3,axis = 0))
print('等同于')
print(np.vsplit(A, 3))
#不等量分割
print('--------------')
print(np.array_split(A,3, axis = 1))
B = np.arange(24).reshape(4,6)
print(B)
print(np.array_split(B, 4, axis = 1))
print(np.array_split(B, 3, axis = 0))

part 7 Numpy copy & deep copy

A = np.arange(4, )
B = A
C = A
D = B
A[0] = 11
print(A)
print(B is  A, C is A, D is A)
D[1:3] = [22, 33 ]
print(A,'\t', B, '\t', C)
#deep copy
B = A.copy()
print(A, B)
A[0] = 1
print(A, )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值