python
python中np模块的应用?
一、python中np模块的应用?
NumPy
NumPy(Numerical Python) 是 Python 的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Nupmy可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。据说NumPy将Python相当于变成一种免费的更强大的MatLab系统。
NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
一个强大的 N 维数组对象 ndarray
广播功能函数
整合 C/C++/Fortran 代码的工具
线性代数、傅里叶变换、随机数生成等功能
ndarray对象
NumPy 最重要的一个对象是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,可以使用基于 0 的索引访问集合中的项目。
ndarray 对象是用于存放同类型元素的多维数组。ndarray中的每个元素在内存中使用相同大小的块。 ndarray中的每个元素是数据类型对象的对象(称为 dtype)
numpy.array( object , dtype = None , ndmin = 0 ,copy = True , order = None , subok = False )
一般只有 object 、dtype和 ndmin 参数常用,其他参数不常用
import numpy
a=numpy.array([1,2,3]) #一维
b=numpy.array([[1,2,3],[4,5,6]]) #二维
c=numpy.array([1,2,3],dtype=complex) #元素类型为复数
d=numpy.array([1,2,3],ndmin=2) #二维
print(a,type(a))
print(b,type(b))
print(c,type(c))
print(d,type(d))
####################################
[1 2 3] <class 'numpy.ndarray'>
[[1 2 3]
[4 5 6]] <class 'numpy.ndarray'>
[1.+0.j 2.+0.j 3.+0.j] <class 'numpy.ndarray'
[[1 2 3]] <class 'numpy.ndarray'>
Numpy数组属性
NumPy 数组的维数称为秩(rank),一维数组的秩为 1,二维数组的秩为 2,以此类推。
在 NumPy中,每一个线性的数组称为是一个轴(axis),也就是维度(dimensions)。比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是 NumPy 中的轴(axis),第一个轴相当于是底层数组,第二个轴是底层数组里的数组。而轴的数量——秩,就是数组的维数。
很多时候可以声明 axis。axis=0,表示沿着第 0 轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作。
ndarray 对象属性有:
常见的属性有下面几种 :
ndarray.shape : 这一数组属性返回一个包含数组纬度的元组,它也可以用于调整数组大小
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a.shape) #打印shape属性
a.shape=(3,2) #修改shape属性
print(a)
#######################################
(2, 3)
[[1 2]
[3 4]
[5 6]]
ndarray.ndim: 这一数组属性返回数组的维数
import numpy as np
a=np.arange(24) #np.arange返回0-23的列表类型的数据
print(a.ndim)
b=a.reshape(2,3,4)
print(b)
print(b.ndim)
############################
1
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
3
ndarray.itemsize : 这一数组属性返回数组中每个元素的字节单位长度
import numpy as np
a=np.array([1,2,3]) #默认是四个字节
print(a.itemsize)
#########################################
4
numpy.mat()函数的用法
该函数用来创建矩阵
import numpy as np
#将列表转为矩阵
a=[7,8,9]
b=np.mat(a)
print(b)
print("#"*10)
#创建一行的矩阵
m=np.mat([1,2,3])
print(m)
print("打印出第一行的第三个值:",m[0,2]) #取第一行的第三个值
print("#"*10)
x=np.mat([[3,2,1],[6,5,4]])
print(x)
print("打印出矩阵的第二行:",x[1])
print("打印出矩阵的第二行:",x[1,:])
print("打印出矩阵的行列数:",x.shape) #获得矩阵的行列数
print("打印出矩阵的行数 :",x.shape[0]) #获得矩阵的行数
print("打印出矩阵的列数 :",x.shape[1]) #获得矩阵的列数
x.sort() #对矩阵的每一行进行排序
print("对矩阵的每一行进行排序:")
print(x)
print("#"*10)
numpy.zeros()函数的用法
该函数用于返回给定形状和类型的新数组。返回的数据类型为 numpy.ndarray,具有给定形状,类型和顺序的0的数组。
参数:
shape:int 或 int 的元组。新阵列的形状,例如:(2,3)或2。
dtype:数据类型,可选。、例如numpy.int8。默认是numpy.float64
order:{'C','F'},可选,默认:'C' 。是否在内容中以行(C)或列(F)顺序存储多维数据。
import numpy as np
a=np.zeros(5)
print(a,type(a))
b=np.zeros([1,2],dtype='int8')
print(b)
c=np.zeros([1,2,3],dtype='int8')
print(c)
二、python中打印列表怎么去掉?
步骤1:列表的索引从0开始,第一个第三个元素将在位置2。variable p=2,starting index id=0.
步骤2:找到列表的长度。listlen=len (LST)// length of the list(LST)
步骤3:遍历直到列表变空,每次都找到下一个第三个元素的索引。While(listlen>0)
Id=(p+id)%listlen
A=LST.pop(id)// removes and prints the required element
Listlen-=1
End while
三、python中列表如何去重?
方法一: 使用内置set方法来去重
>>> lst1 = [2, 1, 3, 4, 1]
>>> lst2 = list(set(lst1))
>>> print(lst2)
[1, 2, 3, 4]
方法二: 使用字典中fromkeys()的方法来去重
>>> lst1 = [2, 1, 3, 4, 1]
>>> lst2 = {}.fromkeys(lst1).keys()
>>> print(lst2)
dict_keys([2, 1, 3, 4])
方法三: 使用常规方法来去重
>>> lst1 = [2, 1, 3, 4, 1]
>>> temp = []
>>> for item in lst1:
if not item in temp:
temp.append(item)
>>> print(temp)
[2, 1, 3, 4]
方法四: 使用列表推导来去重
>>> lst1 = [2, 1, 3, 4, 1]
>>> temp = []
>>> [temp.append(i) for i in lst1 if not i in temp]
[None, None, None, None]
>>> print(temp)
[2, 1, 3, 4]
方法五: 使用sort函数来去重
>>> lst1 = [2, 1, 3, 4, 1]
>>> lst2.sort(key=lst1.index)
>>> print(lst2)
[2, 1, 3, 4]
方法六: 使用sorted函数来去重
>>> lst1 = [2, 1, 3, 4, 1]
>>> lst2 = sorted(set(lst1), key=lst1.index)
>>> print(lst2)
[2, 1, 3, 4]
四、np.random在python中的意思?
一种伪随机数算法在。
其实在python里面有不同的随机算法,基本上都是伪随机数列,np是numpy提供的一种随机算法,还有random包自己提供的随机算法等等。在tensorflow这种框架中为了兼容数据结构和动态图算法,也提供了自己的random方法。
五、列表和np数组区别?
两者之间的区别:
一,空间大小:
1,)它的空间大小是固定的,空间不够时也不能再次申请,所以需要事前确定合适的空间大小。
2,)ArrayList的空间是动态增长的,如果空间不够,它会创建一个空间比原空间大一倍的新数组,然后将所有元素复制到新数组中,接着抛弃旧数组。而且,每次添加新的元素的时候都会检查内部数组的空间是否足够。
二,存储内容
1,)Array数组可以包含基本类型和对象类型,
2,)ArrayList却只能包含对象类型。 但是需要注意的是:Array数组在存放的时候一定是同种类型的元素。ArrayList就不一定了,因为ArrayList可以存储Object。
三,方法:ArrayList作为Array的增强版,当然是在方法上比Array更多样化,比如添加全部addAll()、删除全部removeAll()、返回迭代器iterator()等。适用场景: 如果想要保存一些在整个程序运行期间都会存在而且不变的数据,我们可以将它们放进一个全局数组里,但是如果我们单纯只是想要以数组的形式保存数据,而不对数据进行增加等操作,只是方便我们进行查找的话,那么,我们就选择ArrayList。而且还有一个地方是必须知道的,就是如果我们需要对元素进行频繁的移动或删除,或者是处理的是超大量的数据,那么,使用ArrayList就真的不是一个好的选择,因为它的效率很低,使用数组进行这样的动作就很麻烦,那么,我们可以考虑选择LinkedList。
六、python怎样移动列表中的数字?
以取出最大值和最小值为例: 1、如需求列表中的最大值,用python自带的函数max() 即可。代码示例如下: numbers = [1,2,3,4,5,6,7,8,9] max(numbers) 2、求最大值也可通过定义函数,再调用函数求得。示例代码如下: def findmax(L): if L == []: return(None) else: Max = L[0] for i in L: if i > Max: Max = i return(Max) numbers = [6,2,9,4,5,1,7,8,3] findmax(numbers) 3、如需求列表中的最小值,用python自带的函数min() 即可。代码示例如下: numbers = [1,2,3,4,5,6,7,8,9] min(numbers) 4、求最小值也可通过定义函数,再调用函数求得。示例代码如下: def findmin(L): if L == []: return(None) else: Min = L[0] for i in L: if i < Min: Min = i return(Min) numbers = [6,2,9,4,5,1,7,8,3] findmin(numbers)
七、min在python中列表的意思?
python中min函数指的是最小的意思,可以使用min函数来获取指定参数的最小值,参数可以为序列,min函数语法格式:“min( x, y,...)”,这里x和y指的是数值表达式。
八、python中列表怎么区分几维?
在Python中,列表的维度可以通过对其子元素递归的方式来确定。如果该列表的子元素是单个元素(不是列表),则该列表是1维的;否则,该列表的维度将是子元素维度加1。例如,一个包含整数的列表是1维,而一个包含包含整数的列表的列表是2维 。
九、如何将Excel列表内容转换成python字典?
我们需要通过使用python的xlrd方法先读取excel,再遍历赋值给字典。代码如下:
importxlrdclassRead_Ex():defread_excel(self):#打开excel表,填写路径
book = xlrd.open_workbook("../Data/test.xlsx")#找到sheet页
table = book.sheet_by_name("Sheet1")#获取总行数总列数
row_Num =table.nrows
col_Num=table.ncols
s=[]
key=table.row_values(0)#这是第一行数据,作为字典的key值
if row_Num <= 1:print("没数据")else:
j= 1
for i in range(row_Num-1):
d={}
values=table.row_values(j)for x inrange(col_Num):#把key值对应的value赋值给key,每行循环
d[key[x]]=values[x]
j+=1
#把字典加到列表中
s.append(d)returnsif __name__ == ‘__main__‘:
r=Read_Ex()
s=r.read_excel()for i ins:print(i)print(s)
结果如下,分别遍历了列表分行显示以及直接输出。
十、python中如何判断一个列表是嵌套列表?
这个List Comprehension相当于一个嵌套循环,外层循环变量是i,内层循环变量是row。 把列表的外层循环改为普通for循环的话,等价于: temp_list = [] for i in range(4): temp_list.append([row[i] for row in matrix]) 把列表的两层循环都改为普通for循环写法,大致相当于: temp_list = [] for i in range(4): temp_list.append([]) for row in matrix: temp_list[-1].append(row[i])
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...