import numpyas np
import random
# a = np.array([1,2,3])
# print(a)
# a = np.array(range(1,6))
# print(a)
# a = np.arange(1.0,6.0,2)
# print(a)
# print(type(a))#a调用的是一个类
# print(a.dtype)#int32这是数据类型
# a1 =np.array([1,0,1,0],dtype=bool)
# print(a1)#我们在创建数组的可以用dtype更改数据类型
# a2 = a1.astype('float32')
# print(a2)
#print(random.random())
# b = np.array([random.random()for i in range(4)])
# print(b)
# print(np.round(b,2))
# print(np.around(b,3))
#维度
# t1 = np.arange(6)#一维空间
# print(t1)
# print(t1.ndim)#打印几维
# # print(t1.shape)#打印形状 一行六列
# t2 =np.array([[1,2,3] ,[4,5,6]])#如果要写二个数组则需要用一个数组包括二个数组
# print(t2)
# print(t2.ndim)
# print(t2.shape)
#t3 =np.array([[1,2,3] ,[4,5]])#大数组里的列表必须len相同否则就全是一维
# # print(t3)
# t2 =np.array([[[1,2,3],[4,5,6],[7,8,9]]])#在加一个[]就是三维
# print(t2)
# print(t2.ndim)
# print(t2.shape)#(1, 3, 3) 3行3列 前面那个1是块的意思
# t2.reshape(3,3)#我们可以通过reshape改变形状 但是数据量要对上
# print(t2)
# t2 = t2.reshape(9)
# print(t2.shape)
# print(t2.ndim)
# t2 = t2.reshape(3,3)
# t2 = t2.reshape(t2.shape[0] * t2.shape[1])
# print(t2)
# #数组的计算
# print(np.zeros(3))#生成全0的数组
# print(np.ones((3,4)))#生成全1的数组
# #可以用一个元祖来写出几行几列
# t3 =np.array([[1,2,3] ,[4,5,6]])
# print(t3*3)
# #print(t3/0)#在numpy中/0不会报错但会给警告输出inf
# #在numpy中有广播机制+1的话所有东西都会加一
# t2 =np.array([[1,2,3] ,[4,5,6]])
# print(t2 / t3)#二个数组相除的话出来的结果是float
# t4 = np.array([[1],[2]])
# print(t2 + t4)#如果二个数组的形状是不一样的话会依照广播机制每个数相加
# #如果二个数组要相加的话维度的行和列至少要有一个是相同的
# #numpy读取本地数据
# t = np.loadtxt('c.csv',delimiter=',',dtype='int',unpack=True)#unpack=True行列交换)#numpy读取的数据类型默认为float
# print(t)
# a = np.arange(20).reshape(4,5)
# a1 = np.arange(20).reshape(4,5)
# a.transpose()#转置方法1
# print(a)
# print(a1)
# print(a.T)#专置方法2
# 轴的概念 0代表竖轴(列y)1代表横轴(行x)三维的话第三个面写为2(块)
t = np.loadtxt('cwj.csv',delimiter=',',dtype=int)
#print(t)
#print(t[2])#这是取一行其实第三行
#print(t[:3])#我们可以用切片取出来多行 这是取前三行
# print(t[0:3:2])
# print(t[[0,2]])#取不连续的多行 第一行和第三行
#取列
#print(t[:,0])#逗号前面取得是行 后面取得是列
#取连续的列
# print(t[:,0:2])
# print(t[:,[0,3]])#取不同的列
#打印多行多列
print(t[1:3,:2])
#取点
print(t[[1,1],[1,3]])
