【Python实战15】NumPy数组的创建

NumPy提供了一个N维数组对象,即:ndarray。ndarray是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。

创建ndarray数组

创建数组最简单的方式就是使用array函数,它接受一切序列型的对象,然后产生一个新的含有传入数据的NumPy数组。如下:

嵌套的序列将会被转换为一个多为数组:

除非显示的说明,np.array会尝试为新建的这个数组推断出一个较为合适的数据类型,我们可以通过dtype来进行查看,比如上面刚建立的数组类型为:int32类型;另,我们可以通过shape属性来查看当前数组各个维度的大小。

除了np.array之外,另一些函数也能提供数组的创建,比如:zeros和ones分别可以创建指定长度并且内容全为0或者1的数组。如下:

可以通过np.zeros创建内容全为0的数组:

也可以通过ones创建一个内容全为1的数组:

也可以通过empty函数创建一个三维数组:

empty函数并不会返回全是0的数组,所以想要通过empty函数创建一个元素全是0的数组是不安全的。

另,可以通过arange函数创建在某个数范围内的数组:

ndarray的数据类型

dtype是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息,我们可以通过dtype来制定当前新建数组的类型:

在NumPy中提供了多种数据类型:比如int8/uint8,int16/uint16,int32/uint32等等;我们可以通过astype方法来显式地转换一个数组的类型:

在上面的例子中将整型转换为了浮点型。如果将浮点型转换为整型的话,则小数部分会被截断:

如果一个字符串中都是数字的话,我们也可以将其转换为数值形式:

我们还可以通过一个数组的类型来指定另一个数组的类型:

数组和标量之间的运算

数组很重要,因为它不用编写循环即可对数据进行批量计算。这通常叫做矢量。大小相等的数组之间的任何算术运算都回将运算应用到各个元素上。

同样,数组与标量之间的算术运算也会将那个标量值传播到各个元素:

【Python实战15】NumPy数组的创建

时间: 2024-11-06 16:04:37

【Python实战15】NumPy数组的创建的相关文章

python:将numpy数组写入csv文件

1 import numpy as np 2 np.savetxt('E:\\forpython\\featvector.csv',data_to_save,delimiter=',')

C++读取保存为二进制的 numpy 数组

首先需要确定C++和Python中变量对应的精度类型, https://docs.scipy.org/doc/numpy/user/basics.types.html#array-types-and-conversions-between-types 常用的, C++int对应Pythonnp.intc C++float对应Pythonnp.single C++double对应Pythonnp.double numpy数组保存为二进制文件 import numpy as np a = np.ar

Numpy 学习之路(1)——数组的创建

数组是Numpy操作的主要对象,也是python数据分析的主要对象,本系列文章是本人在学习Numpy中的笔记. 文章中以下都基于以下方式的numpy导入: import numpy as np from numpy import * 1.普通数组的创建——np.arange(), np.array(), (1) arange()建立是顺序数组,函数原型:arange([start,]stop[,step],dtype=None) 其中start参数如果省略,则表示从0开始,默认的dtype为fl

一、Numpy基础:创建数组

h2 { font-size: 24px; height: 35px; line-height: 35px !important; width: 95%; background-color: #169FE6; padding-left: 10px; color: white } table { border: 1px solid #d3d3d3; background: #fefefe; width: 90% } th,td { padding: 0.5% 1% 0.5% } th { back

Python numpy数组扩展效率问题

Numpy库的ndarray数组可以方便地进行各种多维数据处理工作 可是它最大的缺点就是不可动态扩展--"NumPy的数组没有这种动态改变大小的功能,numpy.append()函数每次都会重新分配整个数组,并把原来的数组复制到新数组中."(引用自http://blog.chinaunix.net/uid-23100982-id-3164530.html) 场景: 今天用ndarray处理 42000 条数据时,就遇到了数组扩展的效率问题 文件名:train.csv(后附下载) 文件大

数学之路-python计算实战(15)-机器视觉-滤波去噪(归一化块滤波)

# -*- coding: utf-8 -*- #code:[email protected] #归一化块滤波 import cv2 import numpy as np fn="test3.jpg" myimg=cv2.imread(fn) img=cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY) #加上高斯噪声,能够參考曾经博文中的内容 ...... ...... #滤波去噪 lbimg=cv2.blur(newimg,(3,3)) cv2.imshow

numpy数组和python数组的区别

1.numpy数组创建时是固定大小,python数组(list)是动态的.更改ndarray的大小将创建一个新数组并删除原来的数组. 2.元素类型区别. NumPy数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同. python的List可以存放不同类型的元素. 例外情况:Python的原生数组里包含了NumPy的对象的时候,这种情况下就允许不同大小元素的数组. 3.数学操作执行效率高于原生python 4.越来越多的基于Python的科学和数学软件包使用NumPy数组 原文地址:h

Python中numpy 数组的切片操作

Python中numpy 数组的切片操作简介取元素 X[n0,n1]切片 X[s0:e0,s1:e1]切片特殊情况 X[:e0,s1:]示例代码输出结果简介X[n0,n1]是通过 numpy 库引用二维数组或矩阵中的某一段数据集的一种写法.类似的,X[n0,n1,n2]表示取三维数组,取N维数组则有N个参数,N-1个逗号分隔.以二维数组为例: import numpy as npX = np.array([[0,1,2,3],[10,11,12,13],[20,21,22,23],[30,31,

numpy 数组创建例程

1 numpy.empty empty(shape[, dtype=float, order='C']) 创建指定 shape 和dtype 的未初始化数组 返回:ndarray. 说明:order = 'C' 或 'F' 'C'是按行的C风格的数组,'F'为按列的Fortran 风格数组. import numpy as np a = np.empty((3,3),dtype = int) print(a) 运行 [[ 6553665 7471204 7536741] [ 4587635 71