NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库!

简单理解:

  2维是EXCEL表格里面的多行多列
  3维是EXCEL表格里面的多行多列+下面的sheet1、2、3
  4维是包括了同一个文件夹下不同名称的EXCEL表格
  5维是同一分区不同文件夹下不同名称的EXCEL表格
  6维是不同分区不同文件夹下不同名称的EXCEL表格

多维数组非常像列表,但通常它的元素类型是相同的,且都是数字,下面是一个简单的例子。

 声明数组:

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6])

print(f'一维数组: {a}')

结果:

a = np.array([[1, 2, 3], [4, 5, 6]])
print(f'二维数组: {a}')

结果: 

# 使用reshape方法反向生成多维数组 三维数组
nlist_3 = np.array(range(24)).reshape((3,2,4))
print(nlist_3)

结果:

#反向声明一个size为20个元素的四维数组
nlist_4 = np.array(range(20)).reshape((1,2,5,2))
print(nlist_4)

结果:

 数组操作:

print(f'维度(axes or dimensions)): {a.ndim}')

结果:

print(f'每个维度长度: {a.shape}')

结果:

print(f'数组长度: {a.size}')

结果:

print(f'数组类型: {type(a)}')

结果:

print(f'数组元素类型: {a.dtype}')

结果:

print(f'数组元素大小(bytes): {a.itemsize}')

结果:

print(f'数组元素: {a.data}')

结果:

#data属性,用来打印数据缓冲区 buffer
print(a.data)
结果:

#使用浮点作为元素类型
nlist_flaot = np.array([1.0,2.0,3.0])
print(nlist_flaot.dtype)

结果:

#使用字符串作为元素类型
nlist_string = np.array(['a','b','c'])
print(nlist_string.dtype)

结果:

#自动生成使用ones方法,自动生成元素为1的多维数组
nlist_ones = np.ones((4,4))
print(nlist_ones)
print(nlist_ones.dtype)

结果:

#使用zeros来生成元素为0的多维数组
nlist_zeros = np.zeros((4,4))
print(nlist_zeros)
print(nlist_zeros.dtype)

结果:

#使用empty方法来生成随机多维数组 使用第二个参数指定数据类型 不指定为float64
nlist_empty = np.empty([2,2],dtype=np.int)
print(nlist_empty)
print(nlist_empty.dtype)

结果:

#把普通list转换成数组
x = [1,2,3]
x = [[1,2,3],[4,5]]
print(type(x))
nlist = np.asarray(x)
print(nlist)
print(nlist.ndim)
print(nlist.shape)
print(type(nlist))

结果:

#把普通list转换成数组 二维数组
x = [1,2,3]
x = [[1,2,3],[4,5,6]]
print(type(x))
nlist = np.asarray(x)
print(nlist)
print(nlist.ndim)
print(nlist.shape)
print(type(nlist))

结果:

#frombuffer  通过字符串(buffer内存地址)切片来生成多维数组 b指定字节
my_str = b'Hello Word'
nlist_str = np.frombuffer(my_str,dtype='S1')
print(nlist_str)

结果:

x = np.array([[1,2],[3,4]])
print(x) #指定axis属性可以指定当前多维数组的维度 keepdims=True让其维度不变
sum0 = np.sum(x,axis=0,keepdims=True)
print(sum0)
print('--------------')
sum1 = np.sum(x,axis=1,keepdims=True)
print(sum1)

结果:

#多维数组赋值
x = np.array([1,2])
y = x.copy()
y[0] = 3
print(x)

结果:

#维度级的运算
a = np.array([[1,2],[3,4],[5,6]])
b = np.array([[10,20],[30,40],[50,60]]) #vstack方法
suma = np.vstack((a,b))
print(suma) #hstack方法
sumb = np.hstack((a,b))
print(sumb)

结果:

#多维数组调用
nlist = np.array([[1,2],[3,4],[5,6]])
print(nlist[0])
#取元素4
print(nlist[1][1])
#第二种写法
print(nlist[1,1])
nlist[2,1] = 7
print(nlist)

结果:

#删除方法 delete
#删除nlist第二行
print(np.delete(nlist,1,axis=0))
print(np.delete(nlist,0,axis=1))

结果:

简单的计算及数组值交换操作

import numpy as np
q1 = np.zeros(shape=10)
#给第五个元素赋值
q1[4] = 1
# print(q1)
# 创建一个每一行都是0到4的5*5矩阵
q2_list = [0,1,2,3,4]
# 使用list乘法反推矩阵
q2 = np.array(q2_list * 5).reshape(5,5)
# print(q2)
q3 = np.array([[1,2,3],[4,5,6],[7,8,9]])
#使用所引交换元素
# 换行
q3 = q3[[2,1,0]]
q3 = q3[[2][0]]
print(q3)
#原数组为一维数组,内容为从 0 到 100,抽取出所有偶数。
q4 = np.array(range(101))
#判断偶数
q4 = q4[q4 % 2 == 0]
print(q4)
import numpy as np

q1 = np.zeros(shape=10)
#给第五个元素赋值
q1[4] = 1
# print(q1) # 创建一个每一行都是0到4的5*5矩阵
q2_list = [0,1,2,3,4]
# 使用list乘法反推矩阵
q2 = np.array(q2_list * 5).reshape(5,5)
# print(q2) q3 = np.array([[1,2,3],[4,5,6],[7,8,9]])
#使用所引交换元素
# 换行
q3 = q3[[2,1,0]]print(q3) #原数组为一维数组,内容为从 0 到 100,抽取出所有偶数。
q4 = np.array(range(101))
#判断偶数
q4 = q4[q4 % 2 == 0]
print(q4)

最新文章

  1. 【前端性能】必须要掌握的原生JS实现JQuery
  2. Xamarin Android 所见即所得问题
  3. Flask 的 Context 机制
  4. 清空IE缓存
  5. Knockoutjs 实践入门 (1) 属性绑定
  6. Android Studio的git功能的使用
  7. 转载:android.屏幕锁,解锁,在取证上的应用
  8. sell -- 解码16进制unicode
  9. python实现指定目录下批量文件的单词计数:串行版本
  10. hadoop对于压缩文件的支持及算法优缺点
  11. 第33条:用EnumMap代替序数索引
  12. 如何得到UBUNTU源代码
  13. EF中执行原生sql与使用Local获取本地数据
  14. Strtus2工作流程及原理
  15. LVS之DR跨网段实战及高可用性
  16. YiShop_商城网站设计应该注意什么
  17. Android语音识别
  18. python3自带工具2to3.py用法
  19. springcloud feign传输List的坑
  20. 加壳工具-Virbox Protector Standalone

热门文章

  1. win10查看无线密码
  2. django之路由层
  3. Java——scoket通讯
  4. C# 将当前应用程序写入到注册表开机启动项中
  5. python数据结构与算法第三天【时间复杂度计算方法】
  6. C-Lodop提示“网页还没下载完毕,请稍等一下再操作.”
  7. 比特币中的Base58 编码
  8. Quick Introduction to SQL Server Profiler
  9. Linux 部署KVM虚拟化平台
  10. Comet OJ - Contest #0