? 一个在Python中做科学计算的基础库,重在数值计算,也是大部分Python科学计算库的基础库,多哦用于在大型、多维数组上执行数值运算。
创建数组: np.arange的用法arange([start,stop,step], dtype=None)(不包括stop)
import numpy as np
a = np.array([1,2,3,4,5])
b = np.array(range(1,6))
c = np.arange(1,6)
# 上面a,b,c内容相同,注意arange和range的区别
数组的类名:
a = np.array([1,2,3,4,5])
type(a)
数组的类型:
a.dtype
import numpy as np
import random
# numpy中的数据类型
t1 = np.arange(4,10,2)
print(type(t1))#输出int64
t2 = np.array(range(1,4),dtype=float)
print(type(t2))#输出float64
t3 = np.array(range(1,4),dtype=float32)
print(type(t3))#输出float32
t4 = np.array(range(1,4),dtype="i1")
print(t4.dtype) # 输出:int8
# numpy中的bool类型
t5 = np.array([1,1,0,1,0,0],dtype=bool)
print(t5) #输出:[ True True False True False False]
print(t5.dtype) # 输出:bool
# 调整数据类型
t6 = t5.astype("int8")
print(t4.dtype) # 输出:int8
# numpy中的小数
t7 = np.array([random.random() for i in range(10)])
print(t7.dtype) #输出:float64
# t7中的小数都保留两位
t8 = np.round(t7,2)
指定创建的数组的数据类型:
t5 = np.array([1,1,0,1,0,0],dtype=bool)
修改数组的数据类型:
t6 = t5.astype("int8")
修改浮点型的小数位数:
np.round(t7,2) # 数组名,小数位数
查看数组的形状:a.shape
a 是数组名
修改数组的形状:a.reshape()
数会对数组中的每个值进行计算
import numpy as np
a = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])
print(a+1)
print(a*3)
import numpy as np
a = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])
b = np.array([[21,22,23,24,25,26],[27,28,29,30,31,32]])
print(a+b)
print(a*b)
当进行运算的两个数组形状一样时,值按对应位置进行计算。
维度不同的数组进行运算时:
如果两个数组的后缘维度(即从末尾开始算起的维度)的轴长度相符或其中一方的长度为1,则认为它们是广播兼容的,广播会在缺失和(或)长度为1 的维度上进行。
在numpy中可以理解为方向,使用0,1,2...数字表示,对于一个一维数组,只有一个0轴,对于2维数组(shape(2,2)),有0轴和1轴,对于三维数组(shape(2,2)),有0,1,2轴
CSV:Comma-Separated Value,逗号分隔值文件
显示:表格状态
源文件:换行和逗号分隔行列的格式化文本,每行数据表示一条记录
np.loadtxt(frame,dtype=np.float,delimiter=None,skiprows=0,unpack=False)
numpy中的转置
三种方法:
t.T
t.swapaxes(1,0) #将0轴和1轴交换
#取行
print(t[2]) # 取第3行
print(t[2,:]) # 取第3行
#取连续多行
print(t[2:]) # 第三行开始的取
print(t[2:,]) # 第三行开始的取
#取不连续多行
print(t[[2,4,6]]) # 取2,5,7行
print(t[[2,4,6],:]) # 取2,5,7行
#取列
print(t[:,0]) # 取第一列
print(t[1,0]) # 取第2行第1列
t[:,2:3] = 0 修改制定位置的值
t[t<10] = 3 修改符合条件值 numpy中布尔索引
np.where(t<10,0,10)
#将t中小于10的替换为0,否则替换为10。
t.clip(10,18)
# 小于10的替换为10,大于18的替换为18,但nan不会被替换
np.vstack(t1,t2) #竖直拼接t1和t2
np.hstack(t1,t2) # 水平拼接
t[[1,2],:] = t[[2,1],:] #行交换 第2行和第3行交换
t[:,[0,2]] = t[:,[2,0]] #列交换 第1列和第3列交换
获取最大值最小值的位置
np.argmax(t,axis=0) #获取x轴上的最大值
np.argmin(t,axis=1) #获取x轴上的最小值
创建一个全0的数组 np.zeros((3,4))
创建一个全1的数组 np.ones((3,4))
创建一个对角线为1的正方形数组(方阵):np.eye(3) (边长)
nan(NAN,Nan):not a number表示不是一个数字
什么时候numpy会出现nan:
numpy中nan的注意点:
inf(-inf,inf):infinity,inf 表示正无穷,-inf表示负无穷
什么时候出现inf(正、负)
默认返回多维数组的全部的统计结果,如果知道axis则返回一个当前轴上的结果
原文:https://www.cnblogs.com/l999q/p/12333884.html