安装地址:

https://www.lfd.uci.edu/~gohlke/pythonlibs/

numpy,matplotlib都是在这里下载

import numpy as np

Part_1:Numpy数组,数组查询及转置和轴对换

1.1 创建各种类型的数组

arr1=np.array([1,2,3,4])
print('一维数组:\n',arr1)arr2=np.array([[1,2,3],[4,5,6]])
print('二维数组:\n',arr2)arr3=np.array([[[[1,2,3,4],[5,6,7,8],[9,10,11,12]]]])
print('四维数组:\n',arr3)arr4=np.array([1,2,3,4],ndmin=3)
print("三维数组:\n",arr4)arr5=np.array([1,2,3.4],dtype=complex)
print('复数数组:\n',arr5)
一维数组:[1 2 3 4]
二维数组:[[1 2 3][4 5 6]]
四维数组:[[[[ 1  2  3  4][ 5  6  7  8][ 9 10 11 12]]]]
三维数组:[[[1 2 3 4]]]
复数数组:[1. +0.j 2. +0.j 3.4+0.j]

1.2 数组属性查询

1.2.1 数组维度

print('arr3数组维度:\n',arr3.ndim)
arr3数组维度:4

1.2.2 数组形状

print('arr3数组形状:\n',arr3.shape)
arr3数组形状:(1, 1, 3, 4)

shape属性的应用 将arr2由原2行3列数组调整为3行2列

arr2=np.array([[1,2,3],[4,5,6]])
print('二维数组:\n',arr2)
arr2.shape=(3,2)
print("arr2变为3行2列后的数组为:\n",arr2)
二维数组:[[1 2 3][4 5 6]]
arr2变为3行2列后的数组为:[[1 2][3 4][5 6]]

1.2.3 数组元素的总数

print('arr3数组元素的总数:\n',arr3.size)
arr3数组元素的总数:12

1.2.4 数组的数据类型

print('arr5元素的数据类型:\n',arr5.dtype)
arr5元素的数据类型:complex128

1.2.5 数组中每个元素的大小

arr5=np.array([1,2,3.4],dtype=complex)
print('复数数组:\n',arr5)
print("arr5数组中每个元素的大小:\n",arr5.itemsize)
复数数组:[1. +0.j 2. +0.j 3.4+0.j]
arr5数组中每个元素的大小:16

1.2.6 数据类型转换

arr7=np.array([1.2,2.6,3.7,9.9])
print(arr7.dtype)
arr6=arr7.astype(np.int32)
print("转换后:\n",arr6.dtype)
float64
转换后:int32

1.3 数组展平

数组名.ravel()

arr2=np.array([[1,2,3],[4,5,6]])
print('二维数组arr2:\n',arr2)
arr8=arr2.ravel()
print("展平后:\n",arr8)
二维数组arr2:[[1 2 3][4 5 6]]
展平后:[1 2 3 4 5 6]

1.4 数组转置和轴对换

transpose(),ndarray.T()函数

arr2=np.array([[1,2,3],[4,5,6]])
print('二维数组arr2:\n',arr2)
#arr3的3行4列转置成2行6列
print("转置成2行6列:\n",np.transpose(arr2))
二维数组arr2:[[1 2 3][4 5 6]]
转置成2行6列:[[1 4][2 5][3 6]]

1.4.1 翻转函数示例

arr = np.arange(10).reshape(2,5)
print('原数组:\n',arr)
原数组:[[0 1 2 3 4][5 6 7 8 9]]

用transpose函数转置

print('transpose转置数组:\n')
print(np.transpose(arr))
transpose转置数组:[[0 5][1 6][2 7][3 8][4 9]]

用ndarry.T转置

print('ndarry,T转置数组:\n')
print(arr.T)
ndarry,T转置数组:[[0 5][1 6][2 7][3 8][4 9]]

用rollaxis函数

rollaxis()函数:可实现向后滚动特定的轴,直到一个特定的位置:numpy.rollaxis(arr,axis,start)

arr=np.arange(8).reshape(2,2,2)
print('原数组:\n',arr)
原数组:[[[0 1][2 3]][[4 5][6 7]]]
#将轴2滚动到轴0(宽度到深度)
print('调用rollaxis函数:')
print(np.rollaxis(arr,2,1))
调用rollaxis函数:
[[[0 2][1 3]][[4 6][5 7]]]

用swapaxes函数

arr=np.arange(8).reshape(2,2,2)
print('原数组:\n',arr)#现在交换轴0(深度方向)到轴2(宽度方向)
print('调用swapaxes函数后的数组:')
print(np.swapaxes(arr,2,0))
原数组:[[[0 1][2 3]][[4 5][6 7]]]
调用swapaxes函数后的数组:
[[[0 4][2 6]][[1 5][3 7]]]

Part_2 : Numpy读写文件

2.1 numpy读文件

#创建一个元素范围为0-11的3行4列的数组,然后设置不同的参数,将该数组写入TXT和CSV文件
import numpy as np
arr = np.arange(12).reshape(3,4)
#fmt默认取%.18e(浮点数),分隔符默认是空格,写入保存在当前目录
np.savetxt('test5-1-1.txt',arr)
#写入的文件是十进制整数
np.savetxt('test5-1-2.txt',arr,fmt='%d',delimiter=',')
#在test5-1-3.txt文件头部和尾部都加#test5-1-3注释,写入的文件是字符串
np.savetxt('test5-1-3.txt',arr,fmt='%s',delimiter=',',header='test5-1-3',footer='test5-1-3')
#在test5-1-4.txt文件头部加##test5-1-4注释
np.savetxt('test5-1-4.txt',arr,fmt='%s',delimiter=',',header='test5-1-4',comments='##')
print("-------------------------------------")
#将arr数组保存为csv文件
np.savetxt('test5-1.csv',arr,fmt='%d',delimiter=',',header='test5-1')
arr_phone = np.array([['id','name','tel','email'],[1,'李明',15996663527,'liming@163.com'],[2,'王红',17823727539,'wangming@163.com'],[3,'张某人',17769265666,'wangbagaozi@163.com']])
print(arr_phone)
#enconding后面跟utf-8,不然会出现中文乱码
np.savetxt('phone.csv',arr_phone,fmt='%s',delimiter=',',encoding='utf-8')
-------------------------------------
[['id' 'name' 'tel' 'email']['1' '李明' '15996663527' 'liming@163.com']['2' '王红' '17823727539' 'wangming@163.com']['3' '张某人' '17769265666' 'wangbagaozi@163.com']]

2.2 numpy 写文件

#从test5-1-1.txt文件中读取数据
arr1=np.loadtxt('test5-1-1.txt')
print(arr1)
print("-------------------------------------")
#从test5-1-2.txt文件中读取数据
arr2=np.loadtxt('test5-1-2.txt',delimiter=',')
print(arr2)
print("-------------------------------------")
#从test5-1-3.txt文件中读取数据
arr3=np.loadtxt('test5-1-3.txt',dtype=np.int32,delimiter=',')
print(arr3)
print("-------------------------------------")
#从test5-1-4.txt文件中读取数据
arr4=np.loadtxt('test5-1-4.txt',delimiter=',')
print(arr4)
print("-------------------------------------")
#从csv文件中读取数据
arr5=np.loadtxt('test5-1.csv',delimiter=',')
arr6=np.loadtxt('phone.csv',dtype=np.str_,delimiter=',',encoding='utf-8')
print(arr5)
print(arr6)
[[ 0.  1.  2.  3.][ 4.  5.  6.  7.][ 8.  9. 10. 11.]]
-------------------------------------
[[ 0.  1.  2.  3.][ 4.  5.  6.  7.][ 8.  9. 10. 11.]]
-------------------------------------
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
-------------------------------------
[[ 0.  1.  2.  3.][ 4.  5.  6.  7.][ 8.  9. 10. 11.]]
-------------------------------------
[[ 0.  1.  2.  3.][ 4.  5.  6.  7.][ 8.  9. 10. 11.]]
[['id' 'name' 'tel' 'email']['1' '李明' '15996663527' 'liming@163.com']['2' '王红' '17823727539' 'wangming@163.com']['3' '张某人' '17769265666' 'wangbagaozi@163.com']]

2.3 numpy读写二进制格式文件

1.使用save()或savez()函数写二进制格式文件

格式:numpy.save(file,array)或numpy.savez(file,array)

file:文件名,以.npy为拓展名,压缩拓展名为.npz

array:数组变量

2.使用load()函数读取二进制文件

numpy.load(file) file:文件名,以.npy为拓展名,压缩拓展名为.npz

#示例:
#load和save函数
import numpy as np
arr1=np.arange(30).reshape(3,5,2)
print(arr1)
np.save('arr1.npy',arr1)
arr_a=np.load('arr1.npy')
print(arr_a)
#load和savez函数
arr2=np.arange(20).reshape(4,5)
np.savez('arr2.npz',arr1,arr2)
arr_b=np.load('arr2.npz')
print(arr_b)
[[[ 0  1][ 2  3][ 4  5][ 6  7][ 8  9]][[10 11][12 13][14 15][16 17][18 19]][[20 21][22 23][24 25][26 27][28 29]]]
[[[ 0  1][ 2  3][ 4  5][ 6  7][ 8  9]][[10 11][12 13][14 15][16 17][18 19]][[20 21][22 23][24 25][26 27][28 29]]]
<numpy.lib.npyio.NpzFile object at 0x0000022ABCDF4400>

Q1.Numpy_数组、数组查询、转置和轴对换、读写文件相关推荐

  1. python转置_python数据分析类库系列Numpy之 数组转置和轴对换

    转置是重塑的一种特殊形式,它返回的是源数据的视图(不会进行任何复制操作).数组不仅有transpose方法,还有一个特殊的T属性 arr = np.arange(15).reshape((3, 5)) ...

  2. numpy 转置_Numpy基础:数组转置和轴对换

    转置(transpose)是重塑的一种特殊形式,它返回的是源数据的视图(不会进行任何复制操作).数组不仅有transpose方法,还有一个特殊的T属性. In[70]:arr=np.arange(15 ...

  3. python数组转置和换轴_Numpy基础:数组转置和轴对换

    转置(transpose)是重塑的一种特殊形式,它返回的是源数据的视图(不会进行任何复制操作).数组不仅有transpose方法,还有一个特殊的T属性. In[70]:arr=np.arange(15 ...

  4. 《利用Python》进行数据分析:Numpy基础9 数组转置和轴对换

    #coding=utf-8__author__ = 'andy'import numpy as np arr=np.arange(15).reshape((3,5)) print(arr)#数组转置, ...

  5. VBA中 各种数据类型的使用(自定义数据类型Type,数组,数据字典)、读写文件

    目录 1.各种数据类型 2.VBA定义公共数组(全局都可以使用) 3.读写文件 SJIS 写入 UTF8 写入 读取 SJIS 读取 UTF-8 4.异常处理 5.忽略错误 6.其他常用1 7.其他常 ...

  6. php mongodb 子查询,MongoDB数组子查询elemMatch

    MongoDB数组子查询elemMatch 在 MongoDB数组子查询elemMatch详解 语法 db_name.collection_name.find({field:{$elemMatch:{ ...

  7. 输入一个数字,在数组中查询是否存在,如果存在则显示其索引

    输入一个数字,在数组中查询是否存在,如果存在则显示其索引 public class Demo12 {public static void main(String[] args) {Scanner sc ...

  8. Laravel 使用数组条件查询时 in和or 的用法

    laravel给出了whereIn的用法: $users = DB::table('users')->whereIn('id', [1, 2, 3])->get(); 或者在闭包中使用wh ...

  9. 关于双数组Trie查询词典构造总结

    原贴:http://www.firtex.org/firtex_forum/archiver/?tid-241.html FirteX开发论坛 » FirteX开发者专区 » 关于双数组Trie查询词 ...

最新文章

  1. 【运筹学】线性规划数学模型 ( 知识点回顾 | 可行解 | 最优解 | 阶梯型矩阵 | 阶梯型矩阵向量 | 基 | 基向量 | 基变量 | 非基变量 )
  2. Webbrowers控件的小技巧
  3. jquery插件---自动补全类插件
  4. ds1302模块 树莓派_(16)给树莓派B+ 安装一个实时时钟芯片DS1302
  5. react怎么存上一页_【React】存储全局数据
  6. 如何成为SSP offer收割机|独家经验分享!
  7. php静态地图api,静态图API | 百度地图API SDK
  8. 大数据基础篇(一):联机分析处理(OLAP) 与 联机事务处理(OLTP)
  9. Java生成随机数的4种方式,以后就用它了!
  10. zabbix 3.0 监控windows 部署
  11. dev Gridcontrol控件属性部分
  12. java string is empty_从源码分析java.lang.String.isEmpty()
  13. 春雷视频添加投屏功能解惑
  14. 计算机被覆盖文件怎么恢复,如何找回被覆盖的文件?恢复被覆盖文件的方法
  15. 苹果电脑系统如何读取移动硬盘数据?
  16. 01背包问题的填表方法
  17. SDK manger中只有几个配置????
  18. Mysql 获取成绩排序后的名次
  19. Flutter技术与实战(6)
  20. java常用代码架构示例

热门文章

  1. 开源夏令营《基于HackRF开发GPS信号仿真模拟器》工作总结(一)
  2. 301重定向完整解析
  3. 腾讯弹幕数据分析实战
  4. 跨境电商亚马逊之ERP系统开发的初衷产生的意义
  5. 公务员职位分那几类?会影响待遇?这类职位最受欢迎
  6. PDF云转换,1款极速、免费的PDF转换工具
  7. nuget java_NuGet 使用笔记
  8. 云之家OA系统排名?云之家OA办公系统怎么选?什么是用户口碑最好的云之家OA系统?
  9. 怎么利用JCP的自动分页功能 ,打印长表格网页
  10. Linux云计算学习笔记-1