numpy数据结构

在python中numpy的调用十分简单,与调用其他的数据包一样:import numpy即可
1.numpy可以打开一个txt文件:numpy.penfromtxt(“文件名”,delimiter = ‘,’ , dtype = str)
通过以上操作就打开了一个名为‘文件名’的txt文件(其实可以打开任何格式的文件)

2.关于创建一个array类型的数据(矩阵):numpy.array([1,2,3]) 通过这句话就创建了一个[1,2,3]的向量。当然矩阵也是可以的:numpy.array([[1,2,3],[1,2,3],[1,2,3]])这样就创建出了一个
( [1,2,3]
[1,2,3]
[1,2,3])样子的矩阵。

3.关于取值如何在矩阵中取出一个值呢?如果是向量我么可以采用类似于切片的方法取出一个值**print(xxx[1:3])取出xxx向量中第二到第四个值,如果是矩阵呢? 我们可以采用print(xxx[x,y])**取出x行y列的那个值

4.如何知道一个向量/矩阵是几行几列的呢?
**vector = numpy.array[4,5,6] print(vector.shape) 结果是:(3,) **
a = numpy.array([[1,2,3],[1,2,3],[1,2,3]]) print(a.shape) 结果是(3,3) 意思是三行三列

5.有一点非常重要 array中存放的数据必须是相同类型 不像列表里面可以存放任何值,如果numpy当中存放了不同数据类型的值 它会自动帮我们转换成相同数据类型的值

6.如果当前我们对array数据进行一个简单的操作的话,比如说是一个判断操作。
eg: numpy.array[5,6,7,5] == 5
将会输出:array([true,false,false,true],dtype = bool)

7.关于数据类型转换:
import numpy vectory = numpy.array(['1','2','3']) #现在是str类型

vectory.astype(float) #这样就将它转换成了float浮点型
# author: "HandSomeDk"
# Data: 2018/11/18
import numpy as np

#如何打开一个txt文件?
#world_alcohol = numpy.genfromtxt("world_alcohol.txt",delimiter = ',',dtype = str)
#print(world_alcohol)

#print(help(numpy.genfromtxt))

#vectory = numpy.array([5,45,78])
# proved = numpy.array([[5,45,78],[7,9,5],[1,2,3]])
#
# print(vectory)
# print(proved)

#quel_to_five = (vectory != 5)

#print(quel_to_five)

#print(vectory[quel_to_five]) #这里可以把所有判断为True的值打印出来

assigned = np.array([[1,2,3],
                     [4,5,6],
                     [7,8,9]])

although = np.array([[4,5,6],
                     [1,2,3],
                     [7,8,9]])

assignment = np.array(([[1,2,3],
                           [4,5,6],
                           [7,8,9],
                        [4,5,6]]))
print('现在是str类型:',assigned)

print('将它转换成float类型:',assigned.astype(float))

print('将矩阵按行求和:',assignment.sum(axis=1))
print('将矩阵按列求和:',assignment.sum(axis=0))

print('输出一个0~25的向量:',np.arange(25))
print('输出一个0~25的向量(并且改为5X5矩阵):',np.arange(25).reshape(5,5))

print('可以输出矩阵是几行几列的(找错误的时候可以用):',assignment.shape)
print('输出现在矩阵的维度:',assignment.ndim)
print('输出现在矩阵的元素个数:',assignment.size)
print('创建一个零矩阵(4X4)默认是float:',np.zeros((4,4)))
print('创建一个一矩阵(4X4X4)默认是float改为int:',np.ones((4,4,4),dtype=np.int32))
print('创建一个向量从x到y每次加z:',np.arange(5,25,5))
print('创建一个随机初始化矩阵:',np.random.random((5,5)))
print('设置一个起始值和一个终止值,平均的取z个值:',np.linspace(0,5,100))
print('矩阵的减法(维度相同的时候对应位置相减):',assigned - although)
print('矩阵减去一个整数(所有元素都减 其他的运算也是一样):',assigned - 1)
print('矩阵和一个数进行比较(所有元素都比 返回布尔值):',assigned < 2)
print('矩阵的内积(对应位置元素相乘):',assigned * although)
print('矩阵行乘列(a的行数要等于b的列数):',assigned.dot(although))
print('矩阵行乘列(a的行数要等于b的列数):',np.dot(assigned,although))

B = np.arange(3)

print(B)
print('e的x次方:',np.exp(B))
print('e的根号下x次方:',np.sqrt(B))

a = 10*np.random.random((2,12))
print(a)
print('对上面的随机数矩阵进行取整:',np.floor(a))
print('把矩阵变换成一个向量:',assigned.ravel())

assignment.shape = (2,6)
print('把矩阵改为两行六列:',assignment)
print('把矩阵转置:',assignment.T)

print('将矩阵按行拼接:',np.vstack((assigned,although)))
print('将矩阵按列拼接:',np.hstack((assigned,although)))

print('把一个矩阵按行平均分为两分',np.hsplit(a,2))
print('把一个矩阵按列平均分为三分',np.hsplit(a,3))

print('把一个矩阵按指定行分开(第二行和第三行):',np.vsplit(a.T,(3,4)))
print('把一个矩阵按指定列分开(第二列和第三列):',np.hsplit(a,(3,4)))

#======================注意这里============================
a = np.arange(12)
b = a
print(b is a)
b.shape = 3,4
print('注意a[0,4]:',a.shape)
print(id(a) ,'==', id(b),'\n 注意这里的 b = a 并不是普通的赋值,而是将b完全等同于a,对b进行的操作a也会跟着改变')

#====================浅复制(不推荐使用)=====================
c = a.view()
print(c is a)
c.shape = 2,6
c[0,4] = 123
print(a)
print(a.shape)
print(id(c),'!=',id(a),'\n 注意这里的c和a是不相同的(但是我们更改c的值a的值也会发生改变)')

#=====================copy一份======================
d = a.copy()
print(d is a)
d[0,0] = 99
print(d)
print(a,'\n 这里的a作为d的初始值 就是普通的赋值 两者毫无关系')

data = np.sin(np.arange(20).reshape(5,4))
print(data)
print('按列取出每一列中最大值的列标(整型):',data.argmax(axis=0))
print('按行取出每一行中最大值的行标(整型):',data.argmax(axis=1))
ind = data.argmax(axis=0)
print('取出每一列的最大值',data[ind,range(data.shape[1])])

a = np.arange(0,40,10)

print('将矩阵作为元素创建为一个新的矩阵',np.tile(a,(2,2)))

print('对矩阵中的元素按行进行排序:',np.sort(assigned,axis = 1))
print('对矩阵中的元素按列进行排序:',np.sort(assigned,axis = 0))












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值