python--numpy

import numpy as np
a=[1,2,3,3.2,0.9,'abs']
b=np.array(a)
print(type(b))
print(b)
#list不能进行4则运算
print(b[0]+b[-1])
a=[1,2,3]
b=np.array(a)
print(b+b)

c=np.array([100,200,300])
print(c*5/9+32)
import matplotlib.pyplot as plt
plt.plot(c)
plt.show()

lst=[1,2,3,4]
print(lst)
a=np.array(lst)  #不用写循环就能操作,矢量化,里面必须是一样的
b=a.tolist()
print(a+1)  #'+'是运算符号 而不是链接符号
print(b)

lst1=[1,2,3.2]
lst2=['1',2,4.3]
a=np.array(lst1)
b=np.array(lst2) #强制转换类型
print(a)
print(b)

import sys
from sys import getsizeof
print(getsizeof(np.array([1,2,3,4]))) #112=通用信息+n*4
print(getsizeof(np.array([])))  #96
print(getsizeof(18)) #一个数占据28个字节,python里面一切皆对象。所以它是 24的通用+4个字节
a=[1,2]
print(sys.getrefcount(a)) #引用a的次数

print(getsizeof([])) #64
print(getsizeof([1,2,3,4,5])) #64 + 8*n + n*28=244实际大小,比array低很多

import numpy as np
from timeit import Timer
jishiqi=Timer('y=x+1','x=0') #('构造的函数','初始值')
print(jishiqi.timeit(10))

def test1():
    li=[]
    for i in range(100000):
        li.append(i)
timer1=Timer('test1()','from_main_import test1')
print(timer1.timeit(10))

a=np.arange(10)
print(a)

a=np.arange(10,dtype=float)
print(a)
b=np.linspace(1,10,10,endpoint=False,retstep=True)

a=np.arange(0.5,10.4,0.8)
print(a)

a=np.array([[1,2,3],[3,4,5]])
print(a)
print(a.ndim) #维度
print(a.shape) #形状
print(np.shape(a))
#改变维度
a=np.array([[1,2,3],[3,4,5]])
a.shape=(3,2)
print(a)
b=a.reshape(1,6)
print(b)
b[0][0]=500
print(a,b)  #改变b的一个数,a和b都改变了
print(np.may_share_memory(a,b)) #a,b共同享用相同内存单元,只是改变了头部而已

a=np.array([[1,2,3],[3,4,5]])
F=a.flatten(order='C')
print(F) #行优先
print(np.may_share_memory(a,F))
R=a.ravel(order='F')
print(R) #列优先
print(np.may_share_memory(a,R))

#切片
# A[:,:]   X[::2,::3]
X=np.arange(28).reshape(4,7)
print(X)
lst=[1,2,3,4]
lst=np.array(lst)
lst2=lst[2:6]
lst2[0]=10
print(lst)  #对array操作会改变原来的

e=np.ones((2,3),dtype=int)
t=np.zeros((2,3),dtype=float)
b=np.ones_like(e)
print(e)
print(t)
print(b)
print(np.empty((8,2),dtype=float))
print(np.identity(3))  #单位矩阵
print(np.eye(4,4,dtype=int))
print(np.eye(4,4,k=-2,dtype=int)) #k指移动
print(np.eye(4,4,k=2,dtype=int))
c=b.copy()
print(c)
print(np.may_share_memory(c,b))  #深度复制,不共享
d=np.shape(b)
print(np.may_share_memory(d,b))

a=np.array([1,2,3,4,5,6,99])
ma,mx=a.max(),a.min()
print(ma,mx)
b=np.ptp(a) #最大值和最小值的差值
print(b)
c=np.percentile(a,80)
print(c)
c=np.mean(a) #平均值
print(c)
c=np.median(a) #中位数
print(c)
c=np.std(a) #标准差
print(c)
c=np.var(a) #均方差
print(c)


#矩阵操作
a=np.array([[1,3],[3,5]])
b=np.array([[1,2],[4,5]])
print(a*b) #对应相乘
print(a.dot(b))#矩阵的乘法
#矩阵广播
#小的在大的执行多次
a=np.array([[1,2],[2,3]])
b=np.array([1,1]) #a,b维度不同,但是a,b有一样的列,但是自动补齐
print(a+b)
a=np.array([10,20,30])
b=np.array([1,2,3])
c=a[:,np.newaxis]
print(c.shape)



import numpy as np
v=np.empty((10),dtype=int)
print(v)
a=v[1::2]
print(a)

import numpy as np
a=np.array([1,2,3])
b=np.array([[1],[2],[3]])
print(a+b)
# 1 2 3
# 1 2 3
# 1 2 3
#+
# 1 1 1
# 2 2 2
# 3 3 3


import numpy as np
a=np.array([[1]])
print(a.shape)
c=a[:,np.newaxis]
print(c.shape)
print(c)

#数据链接
import numpy as np
x=np.array([1,2])
y=np.array([3,4])
c=np.concatenate((x,y),axis=1) # axis=0,1,2 封装成元组不易产生歧义
d=np.concatenate(([x],[y])) #加了中括号就有维度了
print(c)
print(d)

import numpy as np
x=np.array([1,2])
y=np.array([[3,4],[2,5]])
b=np.tile(x,5) #复制5份
print(b)
print(np.tile(y,(3,5))) #复制成3行5列

import numpy as np
v=np.random.random(10)
print(v)
a=v[1::2]
print(a)
b=v[::-1]
print(b)
a=np.array([1,2,3,4,5])
b=a[1:4] #共享复制,浅拷贝
b[0]=200 #b[0]=a[1]
print(a[1])
m=np.random.random((3,4)) #维度用小括号,因为后面有参数
print('m:',m)
print('new m1:',m[::,::-1])
print('new m2:',m[::-1,::])
print('new m3:',m[::-1,::-1])
print('new m4',m[1:-1:,1:-1:])


import numpy as np
#print(np.__version__)
#np.show_config()
a=np.zeros(10)
print(a) #eye ones diag empty linspace arange....
print(a.size) #数组大小
a=np.array([[1,2,3],[3,4,5]])
print(a.itemsize) #所占内存大小
print(len(a)) #不适用于numpy
print(a.size)
print(a.itemsize)
import numpy as  np
print(np.info(np.add)) #函数的说明文档

import numpy as np
a=np.zeros(10)
a[4]=1
print(a)
b=np.array(range(50))
c=np.arange(10,50)
print(b)
print(c)
'''
import geos as geos
import numpy as np
a=np.arange(9).reshape(3,3)
#print(a)
a=np.array([1,2,0,0,4,0])
b=np.nonzero(a)
#print(np.nonzero(a)) #返回的是下标
#print(b)

a=np.random.random((3,4))
#print(a.max(),a.min())
#print(np.random.randint(10))
#a=np.random.random(30)
#print(a.mean())

a=np.array([[1,2,3],[4,5,6],[7,8,9]])
#print(np.info(np.pad))
a=np.pad(a,pad_width=1,mode='constant',constant_values=0)
#print(a)
'''神奇的操作
print(0*np.nan)
print(np.nan==np.nan)
print(np.inf>np.nan)
print(np.nan-np.nan)
print(0.3==3*0.1)
print(0.4==4*0.1)
'''

a=np.diag([1,2,3,4],-1)
#print(a)
a=np.zeros((8,8),dtype=int)
a[1::2,::2]=1
a[::2,1::2]=1
#print(a)

#print(np.unravel_index(100,(6,7,8))) #第100个数的下标

a=np.array([[1,2,3],[4,5,6]])  #归一化
amax,amin=a.max(),a.min()
b=(a-amin)/(amax-amin)
print(b)

z=np.arange(22,31)
z[(3<z)&(z<8)]*=-1 #下标运算
print(z)
print(np.where(a>=3))
print(np.where((a==2)|(a==3))) #返回的是下表
print(a[a>3])


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值