码迷,mamicode.com
首页 > 其他好文 > 详细

numpy库

时间:2018-07-27 01:13:26      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:最大   rom   range   size   mat   10个   判断   帮助   查看   

import numpy
# 打开一个文件:genfromtxt
# world_alcohol = numpy.genfromtxt(‘world_alochol.txt‘,delimiter=‘,‘,dtype=str)
# print(type(world_alcohol))
# print(world_alcohol)
# print(help(numpy.genfromtxt)) # 查看帮助文档

# numpy读出来的数据都是矩阵格式

# array() # 要求里面传的东西都是同一类型,若不是,则自动转换,转换成更通用的功能
# vector = numpy.array([5,10,15,20.0])
# matrix = numpy.array([
# [5,10,15],
# [6,12,18],
# [7,14,21],
# [8,16,24]
# ])
# print(vector.shape) # 查看matrix有多少行多少列:(4,)
# print(matrix.shape) # 查看matrix有多少行多少列:(4, 3)
# print(vector) # [ 5. 10. 15. 20.] 统一类型,有float64,就全都转换成这个
# print(matrix)
# ‘‘‘
#
# vector = numpy.array([5,10,15,‘20‘])
# print(vector) # [‘5‘ ‘10‘ ‘15‘ ‘20‘]
#
# ‘‘‘
# print(vector.dtype) # float64
# print(matrix.dtype) # int32
#
# print(vector[0:3]) # [ 5. 10. 15.] 打印前三个值
# print(matrix[:,1]) # 打印每一行的第二列的数:[10 12 14 16]
# print(matrix[:,0:2]) # 打印每一行的第一、二列的数:
# [[ 5 10]
# [ 6 12]
# [ 7 14]
# [ 8 16]]


# vector = numpy.array([5,10,15,20.0])
# matrix = numpy.array([
# [5,10,15],
# [6,12,18],
# [7,14,21],
# [8,16,24]
# ])


# print(vector == 10) # [False True False False]
# # 判断vector中的每一个元素是否等于10
#
# print(matrix == 16)
# ‘‘‘
# [[False False False]
# [False False False]
# [False False False]
# [False True False]]
# ‘‘‘

# second_column_25 = (matrix[:,1] == 12)
# print(second_column_25)
# print(matrix[second_column_25,:])
# equal_to_ten = (vector == 10)
# print(equal_to_ten) # [False True False False]
# print(vector[equal_to_ten]) # [10.] 真 就 返回, 假 就不返回


# equal_to_ten_and_five = (vector == 10) & (vector == 5)
# print(equal_to_ten_and_five) # [False False False False]
#
# equal_to_ten_or_five = (vector == 10) | (vector == 5)
# print(equal_to_ten_or_five) # [ True True False False]
#
# equal_to_ten_or_five = (vector == 10) | (vector == 5)
# vector[equal_to_ten_or_five] = 50 # 真的话就改为50
# print(vector) # [50. 50. 15. 20.]
#
# second_column_25 = matrix[:,1] == 12
# matrix[second_column_25,1] = 1
# print(matrix) # 把每一行的第二列中等于12的数字换成1

# 类型转换
# vector = numpy.array([‘1‘,‘2‘,‘3‘,‘4‘])
# print(vector.dtype) # <U1
# print(vector) # [‘1‘ ‘2‘ ‘3‘ ‘4‘]
# vector = vector.astype(float) # 转换类型
# print(vector.dtype) # float64
# print(vector) # [1. 2. 3. 4.]
#
# # 求最小值
# vector = numpy.array([5,10,15,20])
# print(min(vector)) # 最小值为:5
#
# matrix = numpy.array([
# [5,10,15],
# [6,12,18],
# [7,14,21],
# [8,16,24]
# ])
# print(matrix.min(axis = 1)) # 求每一行的最小值 [5 6 7 8]
# # axis = 1 就是按行;axis = 0 就是按列
# print(matrix.sum(axis = 1)) # 求每一行的和 [30 36 42 48]
# print(matrix.sum(axis = 0)) # 求每一列的和 [26 52 78]

--------------------------------------------------------------------------------------

import numpy as np              # numpy太长了,所以引用一个别名np,操作简单
# a = np.arange(10)
# print(a) # [0 1 2 3 4 5 6 7 8 9]
# b = a.reshape(2,5) # 转换成矩阵(2行5列)
# print(b)
# c = b.size # 查看有多少个元素 结果为 10
# print(c)
# # [[0 1 2 3 4]
# # [5 6 7 8 9]]

# 初始化矩阵
# a = np.zeros((3,4)) # 初始化一个3行4列的矩阵:里面元素都是0,默认为float类型
# print(a)
# b = np.ones((2,3,4),dtype=np.int32) # 初始化 2 个3行4列的矩阵:里面元素都是1,类型为int32
# print(b)
#
# c = np.arange(10,30,5) # 定义一个一维数组,从10开始,到30之前结束(顾头不顾尾),且数字是相差 5
# print(c) # [10 15 20 25]


# 随机值
# a = np.random.random((2,3)) # np.random 是进入random模块,np.random。random是在random模块下又调用了random
# print(a)

# 平均取多少个值
# from numpy import pi # pi 就是π
# a = np.linspace(0,2*pi,10) # 从0到2π 平均取10个值
# print(a)

# 计算

# a = np.array([20,30,40,50])
# b = np.arange(4)
# c = a - b
# print(a,b,c)
# c = c-1
# print(c)
# b = b**2
# print(b)
# print(a<35)


# 乘法运算

A = np.array([
[1,1],
[0,1]
])
B = np.array([
[2,0],
[3,4]
])
C = A*B # 注意 : * 乘 是对应位置相乘!!
print(A)
print(B)
print(C)

# 矩阵乘法
D = np.dot(A,B)
# A.dot(B) # 等于上式
print(D)
------------------------------------------------------------------------------
import numpy as np
# B = np.arange(3)
# print(B) # [0 1 2]
# print(np.exp(B)) # 计算e的多少次方:[1. 2.71828183 7.3890561 ]
# print(np.sqrt(B)) # 求B里所有元素的根号值

# a = np.floor(10*np.random.random((3,4))) # floor是向下取整
# print(a)
# # [[3. 6. 9. 4.]
# # [8. 8. 4. 2.]
# # [2. 2. 1. 5.]]
# print(a.ravel()) # 将矩阵变成一个向量:[3. 6. 9. 4. 8. 8. 4. 2. 2. 2. 1. 5.]
# a.shape = (6,2)
# a.shape(6,-1) # 输入行之后,-1代表它会自动帮你计算有几列
# print(a) # 再将向量转换成6行2列的矩阵
#
# print(a.T) # 求转置


# 矩阵的拼接:
# 横着拼接:np.hstack()
# 竖着拼接:np.vstack()
# a = np.floor(10*np.random.random((2,2)))
# b = np.floor(10*np.random.random((2,2)))
# print(a)
# print(‘------‘)
# print(b)
# print(‘------‘)
# print(np.hstack((a,b))) # 横着拼接
# print(‘------‘)
# print(np.vstack((a,b))) # 竖着拼接

# 矩阵的切分

a = np.floor(10*np.random.random((2,12)))
print(a)
print(‘------‘)
print(np.hsplit(a,3)) # 横着切,切成三个
print(‘------‘)
b = np.floor(10*np.random.random((12,2)))
print(b)
print(‘------‘)
print(np.vsplit(b,3)) # 竖着切
print(‘------‘)
print(np.vsplit(b,(3,4))) # 指定怎么切 前三行一个,第四个一个 ,最后几行为一个
------------------------------------------------------------------------------------
import numpy as np

# # 复制,值和内存地址一样
# a = np.arange(12)
# print(a)
# b = a
# print(b is a) # True
# b.shape = 3,4
# print(a)
# print(id(a)) # 1925734627008
# print(id(b)) # 1925734627008
#
# # view :相当于浅复制,内存地址不一样,但值一样
# c = a.view()
# print(c is a) # False
# c.shape = 2,6
# print(a.shape) # (3, 4)
# c[0,4] = 1234
# print(a) # a对应的位置变成了1234,ID不同,但公用一个值
# print(id(a))
# print(id(c)) # 2439783872432
#
# # copy:都不一样,深复制
# d = a.copy()
# print(d is a) # False
# d[0,0] = 9999
# print(a) # a里面的值并不会改变
# print(d)

# # 排序
#
# data = np.sin(np.arange(20)).reshape(5,4)
# print(data)
# ind = data.argmax(axis = 0) # axis = 0 按照列,argmax返回每一列的最大值所在的行
# print(ind)
# data_max = data[ind,range(data.shape[1])]
# print(data_max) # 输出每一列的最大值

# 对矩阵排序
# a = np.array([
# [4,3,5],
# [1,2,1]
# ])
# print(a)
# print(‘------‘)
# b = np.sort(a,axis = 1) # 对矩阵a的每一行进行排序
# print(b)

a = np.array([4,3,1,2])
j = np.argsort(a) # 先进行排序,然后返回其索引值
print(a)
print(‘------‘)
print(j) # j是一组索引值
print(‘------‘)
print(a[j]) # 返回排序后的值



# 矩阵的扩展
# a = np.arange(0,40,10)
# print(a)
# b = np.tile(a,(3,5)) # 行变成3倍,列变成5倍
# print(b)

numpy库

标签:最大   rom   range   size   mat   10个   判断   帮助   查看   

原文地址:https://www.cnblogs.com/YD2018/p/9374902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!