numpy速度复习

#第一课属性
import numpy as np
array=np.array([[1,2,3],
                [4,5,6],
                [7,8,9]])
print(array,array.ndim)#维度
print(array.shape)#形状
print(array.size)#大小
print(array.dtype)#元素类型
#第二课创建
import numpy as np
a=np.array([1,2,3],dtype=np.float)
print(a.dtype)
zero=np.zeros((2,3))#生成的真是0
print(zero)
one=np.ones((3,4))#生成1
print(one)
empty=np.empty((3,2))#生成的接近0
print(empty)
b=np.arange(10)#依次创建
print(b)
c=np.arange(1,20,3)#等差创建
print(c)
d=np.arange(8).reshape(2,4)#改形状
print(d)
#第三课运算
import numpy as np
arr1=np.array([[1,2,3],
               [4,5,6]])
arr2=np.array([[1,1,2],
               [2,3,3]])
print(arr1)
print(arr2)
print(arr1+arr2)
print(arr1-arr2)
print(arr1*arr2)
print(arr1/arr2)
print(arr1**arr2)
print(arr1%arr2)
print(arr1//arr2)
print(arr1+1)
print(arr1*10)
print(arr1>3)
arr4=np.ones((3,5))
print(arr4)
arr3=np.dot(arr1,arr4)
print(arr3)#矩阵乘法:点乘=对应积和
#也可以arr1.dot(arr4)
print(arr3.T)
#可写成print(np.transpose(arr3))
#第四课随机
import numpy as np
sample1=np.random.random((3,2))#范围默认0到1
print(sample1)
sample2=np.random.normal((3,2))#正态分布
print(sample2)
sample3=np.random.randint(0,10,size=(3,2))#0~10整数
print(sample3)
print(np.sum(sample1))#求和
print(np.max(sample1))#求最大值
print(np.min(sample1))#求最小值
print(np.sum(sample1,axis=0))#列求和
print(np.sum(sample1,axis=1))#行求和
print(np.argmin(sample1))#求最小值索引
print(np.argmax(sample1))#求最小值索引
print(np.median(sample1))#求中位数
print(np.sqrt(sample1))#开方
sample3.sort()#排序,默认对每一行排
print(sample3)
sample4=np.random.randint(0,10,size=(1,10))
sample4.sort()#对样例4(仅一行)排序
print(sample4)
print(np.clip(sample4,2,7))#小于2的变2,大于7的变7
#第五课索引
import numpy as np
arr1=np.arange(2,14)
print(arr1)
print(arr1[2])
print(arr1[1:4])
print(arr1[2:-1])
print(arr1[:5])
print("wait")
arr2=arr1.reshape(3,4)
print(arr2)
print(arr2[1])
print(arr2[1][1])
print(arr2[:,2])#所有行的第二列……不得不说,好恶心
for i in arr2:#逐行取
    print(i)
for i in arr2.T:#逐行取
    print(i)
for i in arr2.flat:#逐个元素取
    print(i)
#第六课合并
import numpy as np
arr1=np.array([1,2,3])
arr2=np.array([4,5,6])
arr3=np.vstack((arr1,arr2))#垂直合并
print(arr3)#阵列
print(arr3.shape)#形状,两行三列
arr4=np.hstack((arr1,arr2))#水平合并
print(arr4)
print(arr4.shape)
arrv=np.vstack((arr1,arr2,arr3))
print(arrv)
arrh=np.hstack((arr1,arr2,arr4))
print(arrh)
arr=np.concatenate((arr3,arrv),axis=0)
print(arr)#axis=0表示纵向,1表示横向
print(arr1.T)#一维不能转置
print(arr1.shape)#不分行列,就3个元素
arr1_1=arr1[np.newaxis,:]#新增一维,注意在:左边是加一行,右边是加一列
print(arr1_1)
print(arr1_1.shape)
print(arr1_1.T)#注意此时arr1_1本身没有转置
arr1_2=arr1[:,np.newaxis]#可以与arr1_2=arr1对比一下,现在加一维后是二维的!!
print(arr1_2)
print(arr1_2.shape)
#第七课分割
print("wati")
import numpy as np
ar1=np.arange(12).reshape((3,4))
print(ar1)
ar2,ar3=np.split(ar1,2,axis=1)#水平方向分割成两分
print(ar2)
print(ar3)
ar4,ar5,ar6=np.split(ar1,3,axis=0)
print(ar4)
print(ar5)
print(ar6)
#split规定是等分的,要不等分,用array_split
arrv1,arrv2,arrv3=np.vsplit(ar1,3)#v是垂直方向
print(arrv1)
print(arrv2)
print(arrv3)
#同理hsplit是水平
#第八课深浅拷贝
import numpy as np
a1=np.array([1,2,3])
a2=a1#共享一块内存,浅拷贝
a2[0]=5
print(a1)
print(a2)
a3=a1.copy()#深拷贝(无聊到爆,不就是多了个copy嘛
a3[0]=10
print(a1)
print(a3)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值