Python NumPy教程之数组的创建详解

目录
  • 使用 List 创建数组
  • 使用数组函数创建数组
  • 使用 numpy 方法创建数组
  • 重塑数组
  • 展平数组
  • 在 Numpy 中创建数组的方法

使用 List 创建数组

数组用于在一个变量中存储多个值。Python 没有对数组的内置支持,但可以使用 Python 列表代替。

例子 :

arr = [1, 2, 3, 4, 5]
arr1 = ["geeks", "for", "geeks"]
# 用于创建数组的 Python 程序

# 使用列表创建数组
    arr=[1, 2, 3, 4, 5]
    for i in arr:
        print(i)

输出:





5

使用数组函数创建数组

array(data type, value list) 函数用于创建一个数组,其参数中指定了数据类型和值列表。

例子 :

# 演示 array() 工作的 Python 代码

# 为数组操作导入“array”
import array

# 用数组值初始化数组
# 用有符号整数初始化数组
arr = array.array('i', [1, 2, 3]) 

# 打印原始数组
print ("The new created array is : ",end="")
for i in range (0,3):
    print (arr[i], end=" ")

print ("\r")

输出:

The new created array is : 1 2 3 1 5

使用 numpy 方法创建数组

NumPy 提供了几个函数来创建具有初始占位符内容的数组。这些最大限度地减少了增长阵列的必要性,这是一项昂贵的操作。例如:np.zeros、np.empty等。

numpy.empty(shape, dtype = float, order = 'C'): 返回给定形状和类型的新数组,具有随机值。

# 说明 numpy.empty 方法的 Python 代码

import numpy as geek

b = geek.empty(2, dtype = int)
print("Matrix b : \n", b)

a = geek.empty([2, 2], dtype = int)
print("\nMatrix a : \n", a)

c = geek.empty([3, 3])
print("\nMatrix c : \n", c)

输出 :

Matrix b : 
 [         0 1079574528]

Matrix a : 
 [[0 0]
 [0 0]]

Matrix a : 
 [[ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]

numpy.zeros(shape, dtype = None, order = 'C'): 返回给定形状和类型的新数组,带零。

# 说明 numpy.zeros 方法的 Python 程序

import numpy as geek

b = geek.zeros(2, dtype = int)
print("Matrix b : \n", b)

a = geek.zeros([2, 2], dtype = int)
print("\nMatrix a : \n", a)

c = geek.zeros([3, 3])
print("\nMatrix c : \n", c)

输出 :

Matrix b : 
 [0 0]

Matrix a : 
 [[0 0]
 [0 0]]

Matrix c : 
 [[ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]

重塑数组

我们可以使用reshape方法来重塑数组。考虑一个形状为 (a1, a2, a3, ..., aN) 的数组。我们可以重新整形并将其转换为另一个形状为 (b1, b2, b3, ..., bM) 的数组。

唯一需要的条件是: a1 x a2 x a3 … x aN = b1 x b2 x b3 … x bM 。(即数组的原始大小保持不变。)

numpy.reshape(array, shape, order = 'C'): 在不更改数组数据的情况下对数组进行整形。

# 说明 numpy.reshape() 方法的 Python 程序

import numpy as geek

array = geek.arange(8)
print("Original array : \n", array)

# 具有 2 行和 4 列的形状数组
array = geek.arange(8).reshape(2, 4)
print("\narray reshaped with 2 rows and 4 columns : \n", array)

# 具有 2 行和 4 列的形状数组
array = geek.arange(8).reshape(4 ,2)
print("\narray reshaped with 2 rows and 4 columns : \n", array)

# 构造 3D 数组
array = geek.arange(8).reshape(2, 2, 2)
print("\nOriginal array reshaped to 3D : \n", array)

输出 :

Original array : 
 [0 1 2 3 4 5 6 7]

array reshaped with 2 rows and 4 columns : 
 [[0 1 2 3]
 [4 5 6 7]]

array reshaped with 2 rows and 4 columns : 
 [[0 1]
 [2 3]
 [4 5]
 [6 7]]

Original array reshaped to 3D : 
 [[[0 1]
  [2 3]]

[[4 5]
  [6 7]]]

为了创建数字序列,NumPy 提供了一个类似于 range 的函数,它返回数组而不是列表。

arange返回给定间隔内均匀分布的值。长是指定的。

linspace 返回给定间隔内均匀分布的值。编号_ 的元素被返回。

arange([start,] stop[, step,][, dtype]): 根据间隔返回一个具有均匀间隔元素的数组。提到的间隔是半开的,即[开始,停止)

# 说明 numpy.arange 方法的 Python 编程

import numpy as geek

print("A\n", geek.arange(4).reshape(2, 2), "\n")

print("A\n", geek.arange(4, 10), "\n")

print("A\n", geek.arange(4, 20, 3), "\n")

输出 :


 [[0 1] 
 [2 3]]


 [4 5 6 7 8 9]


 [ 4 7 10 13 16 19]

numpy.linspace(start, stop, num = 50, endpoint = True, retstep = False, dtype = None): 在间隔中均匀返回数字空间。类似于 arange 但不是 step 它使用样本编号。

# 说明 numpy.linspace 方法的 Python 编程

import numpy as geek

# 重新设置为 True
print("B\n", geek.linspace(2.0, 3.0, num=5, retstep=True), "\n")

# 长期评估 sin()
x = geek.linspace(0, 2, 10)
print("A\n", geek.sin(x))

输出 :

B
 (array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ]), 0.25)

A
 [ 0.          0.22039774  0.42995636  0.6183698   0.77637192  0.8961922
  0.9719379   0.99988386  0.9786557   0.90929743]

展平数组

我们可以使用展平方法将数组的副本折叠成一维。它接受 order 参数。默认值为“C”(用于行优先顺序)。使用“F”表示列主要顺序。

numpy.ndarray.flatten(order = 'C') :返回折叠成一维的数组的副本。

# 说明 numpy.flatten() 方法的 Python 程序

import numpy as geek

array = geek.array([[1, 2], [3, 4]])

# 使用扁平化方法
array.flatten()
print(array)

#使用扁平化方法
array.flatten('F')
print(array)

输出 :

[1, 2, 3, 4] 
[1, 3, 2, 4]

在 Numpy 中创建数组的方法

功能 描述
empty() 返回给定形状和类型的新数组,而不初始化条目
empty_like() 返回与给定数组具有相同形状和类型的新数组
eye() 返回一个二维数组,其中对角线为 1,其他位置为 0。
identity() 返回标识数组
ones() 返回一个给定形状和类型的新数组,用一个填充
one_like() 返回与给定数组具有相同形状和类型的数组
zeros() 返回给定形状和类型的新数组,用零填充
zeros_like() 返回与给定数组具有相同形状和类型的零数组
full_like() 返回与给定数组具有相同形状和类型的完整数组。
array() 创建一个数组
asarray() 将输入转换为数组
asanyarray() 将输入转换为 ndarray,但通过 ndarray 子类
ascontiguousarray() 返回内存中的连续数组(C 顺序)
asmatrix() 将输入解释为矩阵
copy() 返回给定对象的数组副本
frombuffer() 将缓冲区解释为一维数组
fromfile() 从文本或二进制文件中的数据构造数组
fromfunction() 通过在每个坐标上执行函数来构造数组
fromiter() 从可迭代对象创建一个新的一维数组
fromstring() 从字符串中的文本数据初始化的新一维数组
loadtxt() 从文本文件加载数据
arange() 在给定间隔内返回均匀间隔的值
linspace() 在指定的时间间隔内返回均匀分布的数字
logspace() 返回在对数刻度上均匀分布的数字
geomspace() 返回在对数尺度上均匀分布的数字(几何级数)
meshgrid() 从坐标向量返回坐标矩阵
mgrid() nd_grid 实例,它返回一个密集的多维“网格”
ogrid() nd_grid 实例,它返回一个开放的多维“meshgrid”
diag() 提取对角线或构造对角线数组
diagflat() 创建一个二维数组,将扁平化输入作为对角线
tri() 一个数组,在给定的对角线处和下方都有一个,在其他地方有零
tril() 数组的下三角形
triu() 数组的上三角形
vander() 生成范德蒙德矩阵
mat() 将输入解释为矩阵
bmat() 从字符串、嵌套序列或数组构建矩阵对象

到此这篇关于Python NumPy教程之数组的创建详解的文章就介绍到这了,更多相关Python NumPy数组创建内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python使用numpy模块创建数组操作示例

    本文实例讲述了Python使用numpy模块创建数组操作.分享给大家供大家参考,具体如下: 创建数组 创建ndarray 创建数组最简单的方法就是使用array函数.它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组. array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3, 4]) ndarray2 = np.array(list('abcdefg')) ndarray3 = np.array([

  • Numpy中创建数组的9种方式小结

    目录 1.使用empty方法创建数组 2.使用array创建数组 3.使用zeros/ones创建数组 4.使用arange创建数组 5.使用linspace创建数组 6.使用numpy.random.rand创建数组 7.使用numpy.random.randn创建数组 8.使用numpy.random.randint创建数组 9.使用fromfunction创建数组 1.使用empty方法创建数组 该方式可以创建一个空数组,dtype可以指定随机数的类型,否则随机采用一种类型生成随机数. i

  • Python数据分析numpy数组的3种创建方式

    目录 一.使用列表创建numpy数组 1 使用numpy创建一维数组 2 使用numpy创建二维数组 3 使用numpy创建一维数组,源为不同数据类型的列表 二.通过读取图片创建多维numpy数组 1 将图片信息读取到numpy数组中 2 在jupyter中读取图片数据后并显示 3 对图片数组数据处理 三.通过指定函数生成numpy数组 1 生成多维数组 2 生成一维线性数组 3 生成一维等差数列 4 生成随机的多维数组 一.使用列表创建numpy数组 1 使用numpy创建一维数组 2 使用n

  • Python 用NumPy创建二维数组的案例

    前言 上位机实战开发先放一放,今天来学习一个新的内容-NumPy的使用 1 一维数组 例:用普通方法生成一维数组 num = [0 for i in range(1,5)] # 创建一维数组 print(num) # 打印数组 print("-"*50) # 分割线 num[2]=6 # 将第三个元素修改位6 print(num) # 打印数组 print("-"*50) # 分割线 运行结果 例:用numpy生成一维数组 from numpy import * m

  • 在NumPy中创建空数组/矩阵的方法

    如何在NumPy中创建空数组/矩阵? 在添加行的情况下,你最好的选择是创建一个与数据集最终一样大的数组,然后向它添加数据 row-by-row: >>> import numpy >>> a = numpy.zeros(shape=(5,2)) >>> a array([[ 0., 0.], [ 0., 0.], [ 0., 0.], [ 0., 0.], [ 0., 0.]]) >>> a[0] = [1,2] >>&g

  • 浅谈Python numpy创建空数组的问题

    一.问题描述: 有一个shape为(308, 2)的二维数组,以及单独的一个数字,需要保存到csv文件中,这个单独的数字让其保存到第3列第一行的位置. 二.具体的实现: 首先要想把一个(308, 2)的二维数组和一个数字给拼接起来,直接拼接没办法实现,因为行数和列数都不同的两个ndarry是无法拼接的(此处按照目前我学的理解,是无法直接拼接的,如果可以的话,麻烦评论一下). 然后我首先想到的解决方法就是先建一个(308,1)的二维数组,然后令这个二维数组的第一个元素设置成那个数字,然后进行拼接,

  • Python NumPy教程之数组的创建详解

    目录 使用 List 创建数组 使用数组函数创建数组 使用 numpy 方法创建数组 重塑数组 展平数组 在 Numpy 中创建数组的方法 使用 List 创建数组 数组用于在一个变量中存储多个值.Python 没有对数组的内置支持,但可以使用 Python 列表代替. 例子 : arr = [1, 2, 3, 4, 5] arr1 = ["geeks", "for", "geeks"] # 用于创建数组的 Python 程序 # 使用列表创建数

  • Python NumPy教程之数组的基本操作详解

    目录 Numpy中的N维数组(ndarray) 数组创建 数组索引 基本操作 数据类型 Numpy中的N维数组(ndarray) Numpy 中的数组是一个元素表(通常是数字),所有元素类型相同,由正整数元组索引.在 Numpy 中,数组的维数称为数组的秩.给出数组沿每个维的大小的整数元组称为数组的形状.Numpy 中的数组类称为ndarray.Numpy 数组中的元素可以使用方括号访问,并且可以使用嵌套的 Python 列表进行初始化. 例子 : [[ 1, 2, 3], [ 4, 2, 5]

  • Python numpy多维数组实现原理详解

    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.今天就针对多维数组展开来写博客numpy其一部分功能如下: 1.ndarray,是具有矢量算术运算且节省空间的多维数组. 2.可以用于对整组的数据快速进行运算的辨准数学函数. 3.能够用于读写磁盘数据的工具以及用于操作系统内存映射的工具. NumPy它本身其实没有提供很高级别的数据分析功能,NumPy之于数值计算特别重要的原因之一,就是因为

  • Python+NumPy绘制常见曲线的方法详解

    目录 一.利萨茹曲线 二.计算斐波那契数列 三.方波 四.锯齿波和三角波 在NumPy中,所有的标准三角函数如sin.cos.tan等均有对应的通用函数. 一.利萨茹曲线 (Lissajous curve)利萨茹曲线是一种很有趣的使用三角函数的方式(示波器上显示出利萨茹曲线).利萨茹曲线由以下参数方程定义: x = A sin(at + n/2) y = B sin(bt) 利萨茹曲线的参数包括 A . B . a 和 b .为简单起见,我们令 A 和 B 均为1,设置的参数为 a=9 , b=

  • Python Numpy库datetime类型的处理详解

    前言 关于时间的处理,Python中自带的处理时间的模块就有time .datetime.calendar,另外还有扩展的第三方库,如dateutil等等.通过这些途径可以随心所欲地用Python去处理时间.当我们用NumPy库做数据分析时,如何转换时间呢? 在NumPy 1.7版本开始,它的核心数组(ndarray)对象支持datetime相关功能,由于'datetime'这个数据类型名称已经在Python自带的datetime模块中使用了, NumPy中时间数据的类型称为'datetime6

  • Python当中的array数组对象实例详解

    计算机为数组分配一段连续的内存,从而支持对数组随机访问: 由于项的地址在编号上是连续的,数组某一项的地址可以通过将两个值相加得出,即将数组的基本地址和项的偏移地址相加. 数组的基本地址就是数组的第一项的机器地址.一个项的偏移地址就等于它的索引乘以数组的一个项所需要的内存单元数目的一个常量表示(在python中,这个值总是1) import array #array模块是python中实现的一种高效的数组存储类型.它和list相似,但是所有的数组成员必须是同一种类型,在创建数组的时候,就确定了数组

  • Python Django项目和应用的创建详解

    目录 创建一个Django项目 settings.py项目配置文件 urls.py路由系统 总结 创建一个Django项目 创建一个名为project的Django项目,在cmd命令行输入 django-admin startproject project 输入命令完会生成一个名叫project的项目包,包内一个manage.py文件和项目名同名的project包. manage.py文件: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互. project包里面我们可以查

  • python基础教程之元组操作使用详解

    简介 tuple 1.元组是以圆括号"()"包围的数据集合,不同成员以","分隔.通过下标进行访问 2.不可变序列,可以看做不可变的列表,与列表不同:元组中数据一旦确立就不能改变(所以没有类似列表的增删改操作,只有基本序列操作) 3.支持任意类型,任意嵌套以及常见的序列操作 4.元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变 声明及使用 复制代码 代码如下: t = ()  #空元组t =(1,)  #单个元素元组,注意逗号

  • python基础教程之数字处理(math)模块详解

    1.math简介 复制代码 代码如下: >>> import math>>>dir(math)          #这句可查看所有函数名列表>>>help(math)         #查看具体定义及函数0原型 2.常用函数 复制代码 代码如下: ceil(x) 取顶floor(x) 取底fabs(x) 取绝对值factorial (x) 阶乘hypot(x,y)  sqrt(x*x+y*y)pow(x,y) x的y次方sqrt(x) 开平方log(x

  • Python NumPy教程之遍历数组详解

    NumPy 包包含一个迭代器对象numpy.nditer.它是一个高效的多维迭代器对象,使用它可以迭代数组.使用 Python 的标准迭代器接口访问数组的每个元素. # 用于遍历数组的 Python 程序 import numpy as geek # 使用排列方法创建数组 a = geek.arange(12) # 具有 3 行和 4 列的形状数组 a = a.reshape(3,4) print('Original array is:') print(a) print() print('Mod

随机推荐