#导入科学计算库
#起别名避免重名
import numpy as np
#小技巧:从外往内看==从左往右看 从内往外看==从右往左看
#打印版本号
print(np.version.version) #1.16.2
#声明一个numpy数组,一层list
nlist = np.array([1,2,3])
print(nlist) #[1 2 3]
#ndim方法用来查看数组的属性--维度
print(nlist.ndim) #1
#使用shape属性来打印多维数组的形状,返回一个tuple,个数,/行数,列数
print(nlist.shape) #(3,)
#声明一个二维数组,二层list
nlist_2 = np.array([[1,2,3],[4,5,6]])
print(nlist_2)
#[[1 2 3]
#[4 5 6]]
print(nlist_2.ndim) #2
print(nlist_2.shape) #(2, 3)
#声明一个三维数组,三层list
nlist3 = np.array([[[1,2,3],[4,5,6],[7,8,9]]])
print(nlist3)
# [[[1 2 3]
# [4 5 6]
# [7 8 9]]]
print(nlist3.ndim) #3
#使用shape属性来打印多维数组的形状,返回一个tuple,个数,/行数,列数
print(nlist3.shape) #(1, 3, 3)
#使用size()方法来打印多维数组的元素个数
print(np.size(nlist)) #3
print(np.size(nlist_2)) #6
#打印numpy多维度数组的数据类型
print(type([1,2,3])) #<class 'list'>
print(type(nlist)) #<class 'numpy.ndarray'>
#使用python内置dtype属性来打印多维度数组内部元素的数据类型
print(type(123)) #<class 'int'>
print(nlist.dtype) #int32
#itemsize属性,来打印多维数组中的数据类型大小,字节
print(nlist.itemsize) #4
print(nlist_2.itemsize) #4
print(nlist3.itemsize) #4
#data属性,用来打印数据缓冲区--buffer---/也就是内存地址/
print(nlist.data) #<memory at 0x000001AF3F0BEA08>
print(nlist_2.data) #<memory at 0x000001FB22BF5CF0>
print(nlist3.data) #<memory at 0x000001FB1A730D68>
#使用reshape()方法,根据形状反向生成多维数组
nlist_3 = np.array(range(24)).reshape((3,2,4)) #3个二维数组,2每组2行,4列数
print(nlist_3)
#使用浮点--元素类型
nlist_float = np.array([1.0, 2.0, 3.0])
print(nlist_float.dtype) #float64
#使用字符串-元素类型
nlist_str = np.array(['1','2','3'])
print(nlist_str.dtype) #<U1
print(range(20))
print(type(range(20)))
nlist_4 = np.array([[[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20]]]])
print(nlist_4)
print(nlist_4.ndim)
print(nlist_4.shape)
print(nlist_4.itemsize)
print(nlist_4.dtype)
print(np.size(nlist_4))
nlist_4 = np.array(range(20)).reshape((1,1,4,5))
print(nlist_4.ndim)
nlist_2_true = np.array([[True,True,True],[True,True,True],[True,True,True]])
print(nlist_2_true)
i = []
nlist2_true = [ i.append(True) for x in range(20) ]
print(i)
nlist_2_true = np.array(range(20)).reshape((1,2,10))
print(nlist_2_true)
 
 
#声明一个size为20的四维数组
nlist_4 = np.array(range(20)).reshape((2,5,1,2))
print(nlist_4)
print(nlist_4.ndim)
print(nlist_4.shape)
#声明一个三行三列的数组
nlist_33 = np.array([[1,2,3],[1,2,3],[5,7,8]])
print(nlist_33)
print(nlist_33.shape)
print(nlist_33.ndim)
print(nlist_33.itemsize) #元素字节
print(nlist_33.size) #长度
print(np.size(nlist_33))
print(np.shape(nlist_33))
#使用ones()自动生成元素为1的多维数组
nlist_ones = np.ones((4,4))
print(nlist_ones)
print(nlist_ones.dtype) #元素float64
#使用zeros()来生成元素为0的多维数组
nlist_zeros = np.zeros((4,4))
print(nlist_zeros)
#使用empty()方法来生成随机多维数组,使用第二个参数指定元素类型
nlist_empty = np.empty([2,2],dtype=np.int)
print(nlist_empty)
print(nlist_empty.dtype) #int32
# numpy把普通list转换为数组
x = [1,2,3]
print(type(x))
nlist = np.asarray(x)
print(type(nlist))
print(nlist)
y = [(1,2,3),(4,5)]
nlist_y = np.asarray(y)
print(nlist_y.ndim) #1
#frombuffer 通过字符串(buffer内存地址)字节切片来生成多维数组
#b强转byte字节
my_str = b'Hello World'
nlist_str = np.frombuffer(my_str,dtype='S1')
print(nlist_str)
x = np.array([[1,2],[3,4]])
print(x)
#指定axis属性,可以指定当前多维数组的维度
sum0 = np.sum(x,axis = 0,keepdims=True) #axis = 0/行级/
print(sum0)
sum1 = np.sum(x,axis=1,keepdims=True) #axis = 1/列级/
print(sum1)
#多维数组赋值
x = np.array([1,2])
x[1] = 3
y = x.copy()
y[0] = 3
print(x)
#维度级的运算
a = np.array([[1,2],[3,4],[5,6]])
b = np.array([[11,22],[33,44],[55,66]])
#vstack()方法---维度一样--- vertical垂直合并
suma = np.vstack((a,b))
print(suma)
#hstack()方法---维度一样--- 横向连纵
sumb = np.hstack((a,b))
print(sumb)
#多维数组调用
nl = np.array([[1,2],[3,4],[5,6]])
print(nl[[2]])
print(nl[0][0])
print(nl[1][1])
nl[1,1] = 444
print(nl)
#删除方法 delete
#删除nlist第二行
print(np.delete(nl,1,axis=0))
print(np.delete(nl,0,axis=1))
a=np.arange(0, 20, 5)
print(a)
print(a.dtype)
b=np.arange(0, 3.0, 0.4)
print(b)
print(b.dtype)
#范围区间差 = 形状数的乘积
a=np.arange(1,5).reshape((2,2))
b=np.arange(3,7).reshape((2,2))
print(a)
print(b)
# 1、创建一个长度为10的一维全为0的多维数组,然后让第5个元素等于1
ll = np.zeros((10,))
print(ll)
print(ll.ndim)
print(ll.size)
ll[4] = 1
print(ll)
q1 = np.zeros(shape=10)
print(q1)
q1[4] = 1
print(q1)
# 2、创建一个每一行都是从0到4的5*5矩阵
# l_2 = np.array([[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]])
list_5 = np.array([[range(5)]*5])
print(list_5)
l_2 = np.array([ range(5)]*5).reshape(5,5)
print(l_2)
print(l_2.ndim) #2维
print(l_2.shape)
# 3、假如给定一个3*3的二维数组,如何交换其中两行的元素?
vv0 = np.random.randint(0,100,size=(2,2))
print(vv0)
print(vv0[[1,0]])
# 4、假如给定一个3*3的二维数组,如何交换其中两行的元素?
#使用索引
vv = np.random.randint(0,100,size=(3,3))
print(vv)
print(vv[[1,0,2]])
print(vv[[2,0,1]])
print(vv[[0,2,1]])
# 5、原数组为一维数组,内容为从 0 到 100,抽取出所有偶数。
mm = np.arange(0,101).reshape(101,)
print(mm)
print(mm[::2]) #切片,步长
mm = filter(lambda x:x%2==0, mm)
# print(np.asarray(list(mm)))
print(np.array(list(mm)))
mm = np.array(range(101))
mm = mm[mm % 2 == 0]
print(mm)
names = ['p','y','t']
ages = [18,29,20]
print({n:a for n in names for a in ages})
print({name:age for (name, age) in zip(names,ages)})
mm = np.arange(12).reshape(2,3,2)
print(mm)
print(mm.data)
print(mm.size)
print(mm.itemsize)
print(mm.ndim)
print(mm.dtype)

python科学计算库的numpy基础知识,完美抽象多维数组(原创)的更多相关文章

  1. numpy科学计算库的基础用法,完美抽象多维数组(原创)

    #起别名避免重名 import numpy as np #小技巧:print从外往内看==shape从左往右看 if __name__ == "__main__": print(' ...

  2. Python科学计算库灬numpy

    Numpy NumPy是一个功能强大的Python库,主要用于对多维数组执行计算.Numpy许多底层函数实际上是用C编写的,因此它的矩阵向量计算速度是原生Python中无法比拟的. numpy属性 维 ...

  3. Python科学计算库

    Python科学计算库 一.numpy库和matplotlib库的学习 (1)numpy库介绍:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成 ...

  4. Python科学计算库Numpy

    Python科学计算库Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 1.简 ...

  5. python科学计算库numpy和绘图库PIL的结合,素描图片(原创)

    # 导入绘图库 from PIL import Image #导入科学计算库 import numpy as np #封装一个图像处理工具类 class TestNumpy(object): def ...

  6. windows下安装python科学计算环境,numpy scipy scikit ,matplotlib等

    安装matplotlib: pip install matplotlib 背景: 目的:要用Python下的DBSCAN聚类算法. scikit-learn 是一个基于SciPy和Numpy的开源机器 ...

  7. [Python学习] python 科学计算库NumPy—矩阵运算

    NumPy库的核心是矩阵及其运算. 使用array()函数可以将python的array_like数据转变成数组形式,使用matrix()函数转变成矩阵形式. 基于习惯,在实际使用中较常用array而 ...

  8. Python科学计算库-Numpy

    NumPy 是 Python 语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,也是学习 python 必学的一个库. 1. 读取文件 numpy.gen ...

  9. Python 科学计算库numpy

    Numpy基础数据结构 NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的元数 # 多维数组ndarray import numpy as np ar ...

随机推荐

  1. Java核心技术第八章——泛型程序设计(1)

    1.泛型程序设计 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用.例如:不希望为了聚集String和Integer对象分别设计不同的类.(个人觉得此处说的聚集译为:创建一个对象,属性可以为 ...

  2. 万能的Python,还能用来制作高大上的进度条?

    对于开发或者运维来说,使用Python去完成一些跑批任务,或者做一些监控事件是非常正常的情况.那么如何有效的监控任务的进度,除了在任务中加上log外,还能不能有另一种方式来了解任务进展到哪一步了呢? ...

  3. BitmapUtil【缩放bitmap以及将bitmap保存成图片到SD卡中】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 用于缩放bitmap以及将bitmap保存成图片到SD卡中 效果图 代码分析 bitmapZoomByHeight(Bitmap s ...

  4. 深入浅出mongoose

    深入浅出mongoose mongoose是nodeJS提供连接 mongodb的一个库. 此外还有mongoskin, mongodb(mongodb官方出品). 本人,还是比较青睐mongoose ...

  5. Linux环境变量配置全攻略

    Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...

  6. 【转】JavaSE面试题目收集

    1.是否可以从一个static方法内部发出对非static方法的调用? 不可以.当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用, ...

  7. 如何将数据库中的值经过servlet传入到jsp页面,并且用EL表达式显示出值

    方法一:通过id查询某一数据库表中具体的行,将值封装在相应的对象中,如下面的对象Notice servlet中 String noticeId=request.getParameter("n ...

  8. dbutils工具类使用

    1DBUtils工具类 1.1概述 DBUtils是java编程中的数据库操作实用工具,小巧简单实用. DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码 DBUtils三个核心功 ...

  9. 图像的膨胀与腐蚀——OpenCV与C++的具体实现

    目录 1. 膨胀与腐蚀的原理 2. 膨胀的具体实现 1) OpenCV实现 2) C/C++实现 3) 验证与结果 3. 腐蚀的具体实现 1. 膨胀与腐蚀的原理 膨胀与腐蚀是数学形态学在图像处理中最基 ...

  10. Java中的守护线程

    守护线程的概念 在java中有两种线程,守护线程和非守护线程,其两者并没有本质的区别,唯一的区别就是当前的用户线程退出的时候,若只存在唯一的A线程,若A线程为守护线程,那么JVM将会直接退出,否则JV ...