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之数组创建的更多相关文章

  1. Numpy基础(数组创建,切片,通用函数)

    1.创建ndarray 数组的创建函数: array:将输入的数据(列表,元组,数组,或者其他序列类型)转换为ndarray.要么推断出dtype,要么显式给定dtype asarray:将输入转换为 ...

  2. numpy学习之创建数组

    1.使用array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3]) array([1, 2, 3]) ndarray2 = np.arr ...

  3. NumPy 从已有的数组创建数组

    NumPy 从已有的数组创建数组 本章节我们将学习如何从已有的数组创建数组. numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 只有 ...

  4. numpy 数组创建例程

    1 numpy.empty empty(shape[, dtype=float, order='C']) 创建指定 shape 和dtype 的未初始化数组 返回:ndarray. 说明:order ...

  5. NumPy数组创建例程

    NumPy - 数组创建例程 新的ndarray对象可以通过任何下列数组创建例程或使用低级ndarray构造函数构造. numpy.empty 它创建指定形状和dtype的未初始化数组. 它使用以下构 ...

  6. (一)初识NumPy库(数组的创建和变换)

    在学习数据分析时,NumPy作为最基础的数据分析库,我们能够熟练的掌握它是学习数据分析的必要条件.接下来就让我们学习该库吧. 学习NumPy库的环境: python:3.6.6 编辑器:pycharm ...

  7. Numpy学习之——数组创建

    Numpy学习之--数组创建 过程展示 import numpy as np a = np.array([2,3,9]) a array([2, 3, 9]) a.dtype dtype('int32 ...

  8. NumPy 数组创建

    章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...

  9. NumPy:数组计算

    一.MumPy:数组计算 1.NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础.2.NumPy的主要功能: ndarray,一个多维数组结构,高效且节省空间 无需循环 ...

随机推荐

  1. 短暂聊天VS温馨提示

    介绍 作为一个合作格该程序猿,使用的开发工具的熟练使用是我们必须掌握的. 而作为一名优秀的程序猿.我们不仅要能熟练的使用.并且还要去高效的使用. 而作为.Net平台专门定制的开发工具VS那当然是我们必 ...

  2. Python第一个基本教程4章 词典: 当指数不工作时也

    Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 Type "copyri ...

  3. Emgu-WPF 激光雷达研究-移动物体检测

    原文:Emgu-WPF 激光雷达研究-移动物体检测 接上篇: https://blog.csdn.net/u013224722/article/details/80738619 先pose出效果图,下 ...

  4. 【转载】MySQL和Keepalived高可用双主复制

    服务器主机IP和虚拟浮动IP配置 RealServer A 192.168.75.133 RealServer B 192.168.75.134 VIP A 192.168.75.110 VIP B ...

  5. 2018-4-25 1.如何在GitHub上新建一个新的项目并下载该项目及如何提交新的文件

  6. Win10《芒果TV》送7天免费会员,邀您抢先看萌心自制《妈妈是超人3》

    <妈妈是超人>第三季萌心归来,霍思燕,贾静雯,黄圣依,邓莎联合释放"妈妈的声音",嗯哼,咘咘,波妞,安迪,大麟子五位萌娃共同出镜,萌化屏幕.Win10<芒果TV& ...

  7. mfc开发an unsupported operation was attempted错误解决

    mfc开发删除了一个控件后,没有删除该控件对应的id和代码导致 觉得mfc真xx 在资源编辑可视化界面手动删除一个控件后,resource.h里该控件的ID竟然还存在 因为该id还存在,调用该控件的代 ...

  8. ArchLinux 安装记录

    主要步骤 下载镜像及刻录 开机安装 联网 编辑镜像站文件 分区 格式化分区并挂载 安装基本操作系统 配置基础操作系统 引导系统 用户管理 网络配置 安装Gonme桌面环境 其他优化 开始准备 下载镜像 ...

  9. ORACLE 11.2.0.4 RAC安装在rhel6上

    . 关闭ipv4防火墙(两个节点): [root@RAC01 ~]# service iptables stop [root@RAC01 ~]# service iptables status ipt ...

  10. Android零基础入门第64节:揭开RecyclerView庐山真面目

    原文:Android零基础入门第64节:揭开RecyclerView庐山真面目 大家还记得之前在第38期~第50期都在学习列表控件吗,其中用了8期讲ListView的使用,相信都已经掌握好了吧.那么本 ...