人工智能系列-numpy(一)

发布于:2024-07-05 ⋅ 阅读:(9) ⋅ 点赞:(0)

🌈个人主页:羽晨同学 

💫个人格言:“成为自己未来的主人~”   

Numpy是python语言的一个拓展程序库,支持大量的维度数组与矩阵计算,此外也针对数组运算提供大量的数学函数库

NumPy支持的数据类型比Python内置的类型要多得多,基本上可以和C语言的数据类型对应上,其中部分类型对应为Python内置的类型。

Numpy最重要的一个特点是其N维数组对象ndarray,它是一系列同类型数据的集合,以0下标为开始进行集合中元素的索引。

nadarray对象是用于存放同类型元素的多维数组。

nadarray中的每个元素在内存中都有相同存储大小的区域。

NumPy数组操作

迭代数组

import numpy as np
a=np.arange(0,60,5)
a=a.reshape(3,4)
print(a)
print('\n')
for x in np.nditer(a,order='C'):
    print(x,end=",")
print('\n')
for x in np.nditer(a,order='F'):
    print(x,end=",")

 

这个就是数组的遍历,需要注意的是C格式的时候为行遍历,F格式的时候为列遍历。

NumPy的广播机制

  •  数组拥有相同形状
  • 当前维度的值相等
  • 当前维度的值有一个是1
a=np.array([[1,2,3],[4,5,6]])
b=np.array([1,0,0])
c=a+b
print(c)

 

修改数组形状

reshape

可以在不改变数据的条件下修改形状

a=np.arange(8).reshape(2,4)
print(a)
print('\n')
print('展开的数组:')
print(a.flatten())
print('\n')

print('以F的风格顺序展开的数组:')
print(a.flatten(order='F'))

 flatten的作用是展开,将数组进行展开。

翻转数组

a=np.arange(8).reshape(2,4)
print('原数组:')
print(a)
print('\n')

print('对换数组:')
print(np.transpose(a))

 

a=np.arange(8).reshape(2,2,2)
print('原数组:')
print(a)
print('\n')
print('调用swapaxes后的数组:')
print(np.swapaxes(a,2,0))

 

这里面涉及到了两个函数,一个是transpose,这个一般交换所有的维度

另外一个是swapaxes,这个可以选择两个维度进行交换

修改数组维度

x=np.array([[1,2],[3,4]])
print('数组x:')
print(x)
print('\n')
y=np.expand_dims(x,axis=0)
print(y)
print(x.shape,y.shape)

 

x=np.arange(9).reshape(1,3,3)
print('数组x: ')
print(x)
print('\n')
y=np.squeeze(x)
print('数组y: ')
print(y)
print('\n')
print(x.shape,y.shape)

 

第一个函数(expand.dims)是增加维度的,第二个函数(squeeze)是删除维度的,默认删除为1的维度

 


网站公告

今日签到

点亮在社区的每一天
去签到