#导入科学计算库
#起别名避免重名
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. CSS Modules In Webpack

    1)从形式上看,CSS Modules 是将CSS中的选择器转换为变量,然后在DOM中引用变量来引入样式. 2)从效果上看,CSS Modules 可以将CSS选择器名字转成随机字符串,保证选择器同名 ...

  2. javascript ES6 新特性之 扩展运算符 三个点 ...

    对于 ES6 新特性中的 ... 可以简单的理解为下面一句话就可以了: 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中. 作用类似于 Object.assign() ...

  3. golang命令行库cobra的使用

    简介 Cobra既是一个用来创建强大的现代CLI命令行的golang库,也是一个生成程序应用和命令行文件的程序.下面是Cobra使用的一个演示: Cobra提供的功能 简易的子命令行模式,如 app ...

  4. .net core入门-发布及部署_异常(处理程序“aspNetCore”在其模块列表中有一个错误模块“AspNetCoreModuleV2")处理

    备注:本人使用开发工具:VS2017,.NET Core 2.2,其中VS2017原本自带2.1,我单独从官网下载了2.2的程序集安装包,但是没有下配套的运行环境,运行项目时出了一个问题. 以下是我在 ...

  5. .Net 委托 delegate 学习

    一.什么是委托: 委托是寻址方法的.NET版本,使用委托可以将方法作为参数进行传递.委托是一种特殊类型的对象,其特殊之处在于委托中包含的只是一个活多个方法的地址,而不是数据.   二.使用委托: 关键 ...

  6. 图片与Base64的转换

    图片转为Base64 // 图片转化成base64字符串 public static String GetImageStr() {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 ...

  7. C# 创建、更改Excel命名区域(NamedRange)

    创建命名区域是指给选定的某个单元格或多个单元格区域设置名称,目的是方便我们在文件中的其他地方对该单元格区域进行引用能够简化公式引用或者方便数据管理.下面记录了具体的C#示例代码.这里创建命名区域分为了 ...

  8. 【设计模式】抽象工厂模式 Abstract Factory Pattern

    简单工厂模式是一个工厂类根据工厂方法的参数创建不出不同的产品, 工厂方法模式是每一个产品都有一个一一对应的工厂负责创建该产品.那么今天要讲的抽象工厂模式是一个工厂能够产生关联的一系列产品.抽象工厂模式 ...

  9. AIDL使用以及原理分析

    AIDL使用以及IPC原理分析(进程间通信) 概要 为了大家能够更好的理解android的进程间通信原理,以下将会从以下几个方面讲解跨进程通讯信: 1. 必要了解的概念 2. 为什么要使用aidl进程 ...

  10. 浅谈AndroidGPU过度绘制、GPU呈现模式分析及相关优化

    在真机设备下有一个开发者选项,这个大家都知道,我们最常用的就打开'USB调试'功能,方便真机调试. 在这开发者选项中还有个选项,'调试GPU过度绘制' 这里选择第二个选项'显示过度绘制区域' 可以看到 ...