首页 > 其他分享 >6. Numpy创建数组

6. Numpy创建数组

时间:2022-09-22 18:24:20浏览次数:52  
标签:numpy 创建 数据类型 print 数组 dtype np Numpy

1.前言

在《NumPy Ndarray对象》一节,介绍了创建 ndarray 数组的基本方法,除了使用 array() 方法外,NumPy 还提供了其他创建 ndarray 数组的方法。本节对这些常用方法做简单介绍。

2. numpy.empty()

numpy.empty() 创建未初始化的数组,可以指定创建数组的形状(shape)和数据类型(dtype),语法格式如下:

numpy.empty(shape, dtype = float, order = 'C')

它接受以下参数:

  • shape:指定数组的形状;
  • dtype:数组元素的数据类型,默认值是值 float;
  • order:指数组元素在计算机内存中的储存顺序,默认顺序是“C”(行优先顺序)。


使用示例如下:

import numpy as np 
arr = np.empty((3,2), dtype = int) 
print(arr) 

输出结果:

[[2003134838  175335712]
[ 538976288  538976288]
[1970562418 1684369010]]

可以看到,numpy.empty() 返回的数组带有随机值,但这些数值并没有实际意义。切记 empty 并非创建空数组。

3. numpy.zeros()

该函数用来创建元素均为 0 的数组,同时还可以指定被数组的形状,语法格式如下:

numpy. zeros(shape,dtype=float,order="C")
参数说明
参数名称说明描述
shape 指定数组的形状大小。
dtype 可选项,数组的数据类型
order “C”代表以行顺序存储,“F”则表示以列顺序存储

示例如下:

import numpy as np
#默认数据类型为浮点数
a=np.zeros(6)
print(a)
b=np.zeros(6,dtype="complex64" )
print(b)

输出结果:

#a数组
[0. 0. 0. 0. 0. 0.]
#b数组
[0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]

也可以使用自定义的数据类型创建数组,如下所示:

 
c = np.zeros((3,3), dtype = [('x', 'i4'), ('y', 'i4')]) 
print(c)
#输出x,y,并指定的数据类型
[[(0, 0) (0, 0) (0, 0)]
[(0, 0) (0, 0) (0, 0)]
[(0, 0) (0, 0) (0, 0)]]

4. numpy.ones()

返回指定形状大小与数据类型的新数组,并且新数组中每项元素均用 1 填充,语法格式如下:

numpy.ones(shape, dtype = None, order = 'C')

示例如下:

import numpy as np 
arr1 = np.ones((3,2), dtype = int) 
print(arr1)  

输出结果如下:

 [[1 1] [1 1] [1 1]]

下面介绍如何使用 Python 列表、流对象、可迭代对象来创建一个 NumPy 数组。

5. numpy.asarray()

asarray() 与 array() 类似,但是它比 array() 更为简单。asarray() 能够将一个 Python 序列转化为 ndarray 对象,语法格式如下:

numpy.asarray(sequence,dtype = None ,order = None )

它接受下列参数:

  • sequence:接受一个 Python 序列,可以是列表或者元组;
  • dtype:可选参数,数组的数据类型;
  • order:数组内存布局样式,可以设置为 C 或者 F,默认是 C。


示例 1,将列表转化为 numpy 数组:

import numpy as np 
l=[1,2,3,4,5,6,7] 
a = np.asarray(l); 
print(type(a)) 
print(a) 

输出结果如下所示:

#a数组类型
<class 'numpy.ndarray'>
#a数组
[1 2 3 4 5 6 7]

示例 2,使用元组创建 numpy 数组:

import numpy as np 
l=(1,2,3,4,5,6,7)    
a = np.asarray(l); 
print(type(a)) 
print(a)  

输出结果如下:

<class 'numpy.ndarray'>
[1 2 3 4 5 6 7]

示例 3,使用嵌套列表创建多维数组:

import numpy as np 
l=[[1,2,3,4,5,6,7],[8,9]] 
a = np.asarray(l); 
print(type(a)) 
print(a)  

输出结果:

<class 'numpy.ndarray'>
[list([1, 2, 3, 4, 5, 6, 7]) list([8, 9])]

6. numpy.frombuffer()

表示使用指定的缓冲区创建数组。下面给出了该函数的语法格式:

numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)

它的参数说明如下所示:

  • buffer:将任意对象转换为流的形式读入缓冲区;
  • dtype:返回数组的数据类型,默认是 float32;
  • count:要读取的数据数量,默认为 -1 表示读取所有数据;
  • offset:读取数据的起始位置,默认为 0。


示例 4 如下:

import numpy as np 
#字节串类型
l = b'hello world' 
print(type(l)) 
a = np.frombuffer(l, dtype = "S1") 
print(a) 
print(type(a)) 

输出结果如下:

<class 'bytes'>
[b'h' b'e' b'l' b'l' b'o' b' ' b'w' b'o' b'r' b'l' b'd']
<class 'numpy.ndarray'>

7. numpy.fromiter()

该方法可以把迭代对象转换为 ndarray 数组,其返回值是一个一维数组。

numpy.fromiter(iterable, dtype, count = -1)

参数说明如下:

参数描述
参数名称描述说明
iterable 可迭代对象。
dtype 返回数组的数据类型。
count 读取的数据数量,默认为 -1,读取所有数据。


示例5:使用内置 range() 函数创建列表对象,然后使用迭代器创建 ndarray 对象,代码如下:

import numpy as np
# 使用 range 函数创建列表对象 
list=range(6)
#生成可迭代对象i
i=iter(list)
#使用i迭代器,通过fromiter方法创建ndarray
array=np.fromiter(i, dtype=float)
print(array)

输出结果:

[0. 1. 2. 3. 4. 5.]

 

标签:numpy,创建,数据类型,print,数组,dtype,np,Numpy
From: https://www.cnblogs.com/jiajunling/p/16720401.html

相关文章

  • centos6创建mysql开机自启动
    环境:OS:centos6db:5.6.40 1.修改/etc/init.d/mysqld文件,默认文件以及存在,该文件内容如下:#!/bin/sh#CopyrightAbandoned1996TCXDataKonsultAB&MontyPro......
  • 5. NumPy数组属性
    1.前言本节介绍Numpy数组的常用属性。2.ndarray.shapeshape属性的返回值一个由数组维度构成的元组,比如2行3列的二维数组可以表示为(2,3),该属性可以用来调整数......
  • hbase 创建命名空间以及判断表格是否存在
    //创建命名空间publicclassHbaseDDL{publicstaticConnectionconnection=DButil.getConnection();//创建命名空间/***创建命名空间......
  • 方法引用-数组的构造器引用和Junit测试概述
    方法引用-数组的构造器引用ArrayBuilder接口/*定义一个创建数组的函数式接口*/publicinterfaceArrayBuilder{//定义一个创建int类型数组的方法,参数传递......
  • leetcode 1640. 能否连接形成数组
    //1class Solution {    int cnt=0;    public boolean canFormArray(int[] arr, int[][] pieces) {        return dfs(0,arr,pieces); ......
  • 多线程创建connection连接hbase
    publicclassGetconnection{//声明一个静态属性publicstaticConnectionconnection=null;static{//创建连接try{......
  • 1. NumPy是什么
    1.前言NumPy的全称是“NumericPython”,它是Python的第三方扩展包,主要用来计算、处理一维或多维数组。在数组算术计算方面,NumPy提供了大量的数学函数。NumPy的底......
  • vue3+jsx做函数组件
    组件部分:import{h}from"vue";constTest1=(props,context)=>{//context.slots类似react的props.children,但是这里代表插槽,ccname是具名插槽的名字,没有......
  • 设计模式-创建型模式之工厂
    一、简单工厂创建对象的工作交由统一的函数接口来管理,传入不同的参数,返回不同的类对象1classAqSb:23def__repr__(self):4return"按期申......
  • 算法 玩转数据结构 2-2 二次封装属于我们自己的数组
    1重点关注1.1索引使用数组最大的优点:快速查询。scores[2]·数组最好应用于“索引有语意”的情况。·但并非所有有语意的索引都适用于数组(例如,以身份......