numpy第二天

import numpy as np
data = np.array([[1,2,3],[4,5,6],[7,8,9]])
#等价于data=np.arange(1,10).reshape(3,3)
#即创造一个3*3,从1排序到10的矩阵
print(data)

print("\n查询几行几列:{}".format(data.shape))
print("\n查询数组类型:{}".format(data.dtype))
print("\n查询几维数据:{}".format(data.ndim))
print("\n数值转置:\n{}".format(data.T))

ndata=data.astype(float)  #拷贝数值的float类型
print("\n查询数组类型:{}\n".format(ndata.dtype))

#不同规格的数组一起计算的话会报错,同行或者同列依旧能计算
data2=np.array([[1,2,3]])
data3=np.array([[1],[2],[3]])
print("同行结果:\n{}".format(eval("data+data2")))
print("同列结果:\n{}\n".format(eval('data+data3')))

#切片教程
print("沿着行(axis=0)进行索引\n{}".format(data[:2]))
print("先沿着行(axis=0)进行索引,再沿着列(axis=1)进行索引\n{}".format(data[:2,:2]))
print("下标是从0开始\n{}\n".format(data[1,0:2]))

#注意赋值过程会起传递作用,即赋值完的数据发生更改,原来的数组也会发生更改
#所以一般用copy()的方法进行拷贝
print("用copy拷贝data的首行数据\n{}\n".format(data[0].copy()))

#数组的布尔索引
print("数组中是否存在一个或多个true: {}".format(data.any()))
print("数组中是否全部数都是true: {}".format(data.all()))

print("多少个元素大于5:{}个".format((data>5).sum()))
print("哪些元素大于5: {}".format(data[data>5]))
print("元素是否大于5:\n{}".format(data>5))
print("大于5的标记未1,小的标记为0\n{}".format(np.where(data>5,1,0)))

print("\n求特征向量均值:\n{}".format(data.mean()))
print("沿行进行索引,求出行均值:\n{}\n".format(data.mean(axis=0)))
#求列均值可以通过转置后再求行均值得出

print("沿着行进行索引,累加\n{}".format(data.cumsum(0)))
print("沿着行进行索引,累乘\n{}\n".format(data.cumsum(1)))

#数据排序操作
data=np.random.randn(4,4)
data.sort(0)  #沿行索引,进行升序排序
print(data)
print(data[::-1])  #降序操作
#同理利用转置后可得列向量得排序

#矩阵计算
x=np.arange(9).reshape(3,3)
print("\n矩阵相乘:\n{}".format(np.dot(x,x)))
print("矩阵转置\n{}\n".format(x.T))

#数据读取和保存
np.save('name',data)  #保存为2进制文件
np.load('name.npy')   #读取2进制文件 

#np.loadtxt(filepath,delimiter,usecols,unpack)
#filepath为文件名,delimiter为剔除符,
#usecols为索引参数,

np.savetxt('1',data)  #保存为txt文本
np.loadtxt('1')       #读取txt文本

#读取csv文件,需要类型转换为str
print(np.loadtxt('test.csv',str,delimiter=","))
#读取数据型csv文件,不是数值则输出nan
print(np.genfromtxt('test.csv',delimiter=','))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值