Numpy之数组创建
ndarray 数组除了可以使用 ndarray 构造器来创建外,也可以通过如下方式创建。
一、创建数组
numpy.empty
语法: numpy.empty(shape, dtype = float, order = 'C')
参数解释:
- shape 数组形状
- dtype 数据类型,可选
- order 有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。
x = np.empty([2,4],dtype=np.int_,order='c') #这里创建了一个空的数组,数组元素为随机值,因为它们未初始化
numpy.zeros
创建指定大小的数组,数组元素以 0 来填充
语法: numpy.zeros(shape, dtype = float, order = 'C')
y = np.zeros([4,5],dtype=np.int_,order='c')
print一下y发现是4行5列,以0填充的数组
numpy.ones同理
二、从已有的数组创建数组
numpy.asarray
numpy.asarray 类似 numpy.array,但 numpy.asarray 只有三个,比 numpy.array 少两个。
语法: numpy.asarray(a, dtype = None, order = None)
li = [1,2,3]
tu = (1,2,3)
tu_li = [(1,2),(3)]
x = np.asarray(li) #将列表转换为ndarray
y = np.asarray(tu) #将元组转换为ndarray
z = np.asarray(tu_li) #将元组列表转换为ndarray
zz = np.asarray(li,dtype=np.float) #抓换的同时设置参数
print(x)
print(y)
print(z)
print(zz)
numpy.frombuffer
用于实现动态数组。接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象
语法: numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)
参数说明:
- buffer 可以是任意对象,会以流的形式读入。
- dtype 返回数组的数据类型,可选
- count 读取的数据数量,默认为-1,读取所有数据。
- offset 读取的起始位置,默认为0。
s = 'Hello World'
a = np.frombuffer(s,dtype = 'S1')
print (a)
但是这段代码在打印的时候有错误 提示 AttributeError: 'str' object has no attribute '__buffer__'
因为buffer 是字符串的时候,Python3 默认 str 是 Unicode 类型,所以要转成 bytestring 在原 str 前加上 b。 s = b'Hello World'
numpy.fromiter
从可迭代对象中建立 ndarray 对象,返回一维数组。
语法: numpy.fromiter(iterable, dtype, count=-1)
- iterable 可迭代对象
- dtype 返回数组的数据类型
- count 读取的数据数量,默认为-1,读取所有数据
my_list = range(20) #创建列表对象
it = iter(my_list)
x = np.fromiter(it,dtype=np.float) #使用迭代器创建ndarray对象
print(x)
三、从数值范围创建数组
numpy.arange
语法: numpy.arange(start, stop, step, dtype)
start 起始值,默认为0
stop 终止值(不包含)
step 步长,默认为1
dtype 返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。
x = np.arange(1,21,2,dtype=np.float)
以上输出的类型设置为了float,表示从1到21里面每隔两个数取一次值
numpy.linspace
用于创建一个一维数组,数组是一个等差数列构成的
语法: np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
start 序列的起始值
stop 序列的终止值,如果endpoint为true,该值包含于数列中
num 要生成的等步长的样本数量,默认为50
endpoint 该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。
retstep 如果为 True 时,生成的数组中会显示间距,反之不显示。
dtype ndarray 的数据类型
y1 = np.linspace(1,10,10) #起始为1,终止为10,数列个数为10
y2 = np.linspace(1,1,10) #元素全部为1,且有10个数列
y3 = np.linspace(10,20,5,endpoint=False) #设置为False则不包含终止位置
y4 = np.linspace(1,10,10,retstep=True) #显示间距
numpy.logspace
用于创建一个等比数列
语法: np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
start 序列的起始值为:base ** start
stop 序列的终止值为:base ** stop。如果endpoint为true,该值包含于数列中
num 要生成的等步长的样本数量,默认为50
endpoint 该值为 ture 时,数列中中包含stop值,反之不包含,默认是True
base 对数 log 的底数
dtype ndarray 的数据类型
x1 = np.logspace(1.0,2.0,num=10) #生成底数为10,从1到2的数列
x2 = np.logspace(0,9,10,base=2) #这里的底数为2
Numpy之数组创建的更多相关文章
- Numpy基础(数组创建,切片,通用函数)
1.创建ndarray 数组的创建函数: array:将输入的数据(列表,元组,数组,或者其他序列类型)转换为ndarray.要么推断出dtype,要么显式给定dtype asarray:将输入转换为 ...
- numpy学习之创建数组
1.使用array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3]) array([1, 2, 3]) ndarray2 = np.arr ...
- NumPy 从已有的数组创建数组
NumPy 从已有的数组创建数组 本章节我们将学习如何从已有的数组创建数组. numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 只有 ...
- numpy 数组创建例程
1 numpy.empty empty(shape[, dtype=float, order='C']) 创建指定 shape 和dtype 的未初始化数组 返回:ndarray. 说明:order ...
- NumPy数组创建例程
NumPy - 数组创建例程 新的ndarray对象可以通过任何下列数组创建例程或使用低级ndarray构造函数构造. numpy.empty 它创建指定形状和dtype的未初始化数组. 它使用以下构 ...
- (一)初识NumPy库(数组的创建和变换)
在学习数据分析时,NumPy作为最基础的数据分析库,我们能够熟练的掌握它是学习数据分析的必要条件.接下来就让我们学习该库吧. 学习NumPy库的环境: python:3.6.6 编辑器:pycharm ...
- Numpy学习之——数组创建
Numpy学习之--数组创建 过程展示 import numpy as np a = np.array([2,3,9]) a array([2, 3, 9]) a.dtype dtype('int32 ...
- NumPy 数组创建
章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...
- NumPy:数组计算
一.MumPy:数组计算 1.NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础.2.NumPy的主要功能: ndarray,一个多维数组结构,高效且节省空间 无需循环 ...
随机推荐
- WPF 4 Ribbon 开发 之 标签工具栏(Tab Toolbar)
原文:WPF 4 Ribbon 开发 之 标签工具栏(Tab Toolbar) 本篇将开始介绍标签工具栏的开发内容,标签工具栏可以说是Ribbon 的核心部分,应用程序所有的功能特性都会集中 ...
- python 安装 win 下的exe结尾的文件操作
1.首先下载相关的模块 2.把下载的相关模块放到python 安装目录下 3.cmd 切换到python的安装目录下 例如:{PIL-1.1.7.win32-py2.7.exe} 4.执行 pip i ...
- MFC应用程序配置不正确解决方案(manifest对依赖的强文件名,WinSxs是windows XP以上版本提供的非托管并行缓存)
[现象] 对这个问题的研究是起源于这么一个现象:当你用VC++2005(或者其它.NET)写程序后,在自己的计算机上能毫无问题地运行,但是当把此exe文件拷贝到别人电脑上时,便不能运行了,大致的错误提 ...
- 算法之--字符串反转【python实现】
题目描述 给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符'a'和'b'移动到字符串的尾部,使得原字符串变成字符串“cdefab”.请写一个函数 ...
- Advanced Installer 打包后,安装包在WIN10下重启后再次运行安装的解决办法
原文:Advanced Installer 打包后,安装包在WIN10下重启后再次运行安装的解决办法 前几个月使用Advanced Installer 打包了一堆安装包,其中有使用默认主题的,也有根据 ...
- Uncaught (in promise)
Uncaught (in promise) 使用es6的promise时候,有时候会出现如下错误: 这是因为,使用定义promise方法的时候,reject了,但是,在使用的地方没有用catch进行接 ...
- QML学习【一】Basic Types
QML入门教程(1) QML是什么? QML是一种描述性的脚本语言,文件格式以.qml结尾.语法格式非常像CSS(参考后文具体例子),但又支持javacript形式的编程控制.它结合了QtDesi ...
- Qt 访问网络的 HttpClient(封装QNetworkAccessManager,且有服务端)
Qt 使用 QNetworkAccessManager 访问网络,这里对其进行了简单的封装,访问网络的代码可以简化为: 1 2 3 HttpClient("http://localhost: ...
- 京东sdk商家上架接口调用问题总结
前言: 最近在做商家发布产品,调用京东sdk,发现问题很多,而且还是在我同事的帮助下完成的,摸索中,菜鸟还请高手门多多提携才好,入正题 首先是引用jd的sdk啦,京东sdk中发布商品需要调用一个 36 ...
- 【MyEclipse常见错误】-java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory的解决
ApacheJavaTomcatMyeclipse 自己前一段时间出现了这个问题,通过在网上搜索,大概知道了原因,整理下一,以供大家参考. 将项目部署好后,启动tomcat后报错,java.lang ...