python numpy学习

#Numpy是numerical python(数字的python)简称。1.具备功能强大的多维数组ndarry;2.具备对整个数组进行快速运算的函数;3.线性怠速、傅里叶变换、随机数生成等功能;3.可集成C\C++\Fortran等语言。
import numpy as np #导入numpy
arr1=np.array([1,2,3,4,5])#创建数组
print(arr1[0])#和列表一样,也可以进行索引与切片,如果修改切片中的值,那么原来元素的值也会改变。如果不想改变原来函数的值,就用a=arr1[2:-2].copy,相当于深复制
print(type(arr1))#可以看出array1类型是numpy.ndarray,为numpy创建的数组
lst=[[1,2,3],[4,5,6]]#创建二位列表lst
arr2=np.array(lst)#把列表转换为数组
print(arr2.ndim)#查看数组的维度
print(arr2.shape)#查看形状,为n行m列
print(arr2.size)#查看元素的个数,相当于shap中n*m的值
print(arr2.dtype)#查看元素的类型
print(arr2.itemsize)#查看每个元素的大小,以字节为单位
arr3=np.array(lst,dtype=np.float64)#把列表转换为数组,并且指定转换后的数据类型
#help(np.array)#查看帮助选项
np.zeros(3)#创建全为0的数组
np.ones((2,3))#创建全为1的两行三列的数组
print(np.random.rand(15))#创建5个0-1的随机数
print(np.random.randint(1,10))#创建要给0-10的随机数
print(np.random.randint(1,10,5))#创建5个0-10的随机数
print(np.arange(10))#创建0-9的数组,也可以在后面加一个参数作为步长。np.arange(1,10,3)
a=np.arange(15).reshape(5,3)#创建一个几行几列的数组
print(np.sqrt(a))#a的算数平方根
a=np.arange(30).reshape(2,3,5)#多为数组的建立
print(a[1,2,1])#第一行第二列第四个元素(注意是从0开始数)
mat=np.genfromtxt(r'D:\download\white_wine.csv',delimiter=',',skip_header=1)#导入一个文件,以','分割
print(mat)
print("\t")
white_wine=mat[:15,[8,10,11]]#提取钱15行,并抽取第7,9,10三个元素
x0=white_wine[:,2]>5#通过布尔索引,判读0,1情况
print(white_wine[x0])#只会选取相应列中x0返回值为真的数据
print("\t")
print(white_wine-white_wine[0])#与第一行的差值
print(np.sum(white_wine,axis=0)/len(white_wine))#axis=0表示按列进行计算,而不是按照行求和
#print(np.mean(white_wine,axis=0))#等价于上面的求和方式
print(np.max(white_wine,axis=0))#每一列的最大值,最小值用min
print(np.sort(white_wine[:,0]))#默认从小到大进行排列
print(np.unique(white_wine[:,2]))#赛选不重复的项


#生成一组新的列表,其中表示如果质量大于等于6,为好;反之,不好
l=[]
for i in white_wine[:,2]:
    if i >=6:
        l.append("好")
    else:
        l.append("不好")
print(l)

#优化方法
print([("好" if i>=5 else "不好") for i in white_wine[:,2]])#优化1
print(np.where(white_wine[:,2],"好","不好"))#优化2

m=np.array([1,2,3])#可以看出数组一旦确定了就不能修改了,但是列表却可以
print(m+np.array([5]))

猜你喜欢

转载自blog.csdn.net/qq_37181884/article/details/81266881