一、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 { background: #e8eaeb }
td { border-top: 1px solid #e0e0e0; border-right: 1px solid #e0e0e0 }
tr:nth-child(2n+1) { background: #f6f6f6 }
td.first,th.first { text-align: left }
td.last { border-right: none }
td { background: -webkit-gradient(linear, 0% 0%, 0% 25%, from(#f9f9f9), to(#fefefe)) }
tr:nth-child(2n+1) td { background: -webkit-gradient(linear, 0% 0%, 0% 25%, from(#f1f1f1), to(#f6f6f6)) }
th { background: -webkit-gradient(linear, 0% 0%, 0% 20%, from(#ededed), to(#e8eaeb)) }
tr:first-child th.first { }
tr:first-child th.last { }
tr:last-child td.first { }
tr:last-child td.last { }
.syntaxhighlighter { width: 95% !important }

Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。如果接触过matlab、scilab,那么numpy很好入手。

一、模块引用

import numpy as np

二、数组的创建

这里先看一下多维度数组的格式,下例是一个三维数组,以楼房的方式理解最直观。

[#数组一层
    [1, 3, 4, 6],#一层1单元
    [2, 5, 6, 7]#一层2单元
],
[#数组二层
    [1, 3, 4, 6],#二层1单元
    [2, 5, 6, 7]#二层2单元
]

注意,数组元素必须放入[]或()之间

2.1普通创建

一维数组创建

np.array([1,2,3,4])
>>>array([1, 2, 3, 4])

多维数组创建

c=np.array([
    [
        [
            [1,2],[3,4]#3维层(内部元素为思维)
        ],#2维层
        [
            [5,6],[7,8]
        ]
    ],#1维层
    [
        [
            [9,10],[11,12]
        ],
        [
            [13,14],[15,16]#3维层(内部元素为思维)
        ]#2维层
    ]#1维层
])
print(c)
>>>
[[[[ 1  2]
   [ 3  4]]
  [[ 5  6]
   [ 7  8]]]
 [[[ 9 10]
   [11 12]]
  [[13 14]
   [15 16]]]]?

2.1.1内置方法创建(arange创建)

arange的使用方法与python内置方法range相同,这里不再赘述,看程序

import numpy as np
a=np.arange(20)
b=np.arange(10,20)
c=np.arange(10,20,2)
d=np.arange(20,10,-1)
print("普通玩法:",a)
print("带起始点的玩法:",b)
print("带步长的玩法:",c)
print("倒着玩:",d)
>>>
普通玩法: [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
带起始点的玩法: [10 11 12 13 14 15 16 17 18 19]
带步长的玩法: [10 12 14 16 18]
倒着玩: [20 19 18 17 16 15 14 13 12 11]

2.1.2内置方法创建(random创建)

与random模块不同,这个random是numpy内置的方法,用法上是相同的,同样看程序

import numpy as np
a=np.random.random((2,2))#0~1的随机数
b=np.random.randn(2,2)#符合正态分布的随机数
c=np.random.randint(2,10,(2,2))#从2~10的随机整数
print("0~1的随机数:",a)
print("正态分布的随机数:",b)
print("从2~10的随机整数:",c)
>>>0~1的随机数: [[0.93614432 0.56444734]
 [0.29267612 0.38625066]]
正态分布的随机数: [[-1.26606533  0.68466118]
 [ 0.34377799  0.1318619 ]]
从2~10的随机整数: [[4 8]
 [9 6]]

numpy.random下所有创建方式如下表所示:

方法名称 解析
rand(d0, d1, ..., dn) 随机值。
randn(d0, d1, ..., dn) 返回一个样本,具有标准正态分布。
randint(low[, high, size]) 返回随机的整数,位于半开区间 [low, high)。
random_integers(low[, high, size]) 返回随机的整数,位于闭区间 [low, high]。
random_sample([size]) 返回随机的浮点数,在半开区间 [0.0, 1.0)。
choice(a[, size, replace, p]) 生成一个随机样本,从一个给定的一维数组。

2.1.3内置方法创建(等差等比创建)

np.linspace (起始值,终止值,元素总数):创建一维等差数组。
np.logspace(起始值,终止值,元素总数):创建一维等比数组。

import numpy as np
a=np.linspace(0,10,5)
b=np.logspace(0,2,5)
print("等差数组:",a)
print("等比数组:",b)>>>
等差数组: [ 0.   2.5  5.   7.5 10. ]
等比数组: [  1.           3.16227766  10.          31.6227766  100.        ]

2.1.4内置方法创建(特殊构造)

np.zeros(shape, dtype=float, order=‘C‘):创建一个全0数组,shape要以元组格式传入。
np.ones(shape, dtype=None, order=‘C‘):创建一个全1数组,shape要以元组格式传入。
np.empty(shape, dtype=None, order=‘C‘):创建一个拥有趋近0值的数组,shape要以元组格式传入。
np.eye(N, M=None, k=0, dtype=float, order=‘C‘):创建一个对角矩阵,N代表行,M代表列。其中有个参数k默认值为0,它代表偏移量,正1时向主对角线右上偏移1位,负1时向主对角线左下偏移1位。
np.full(shape, fill_value, dtype=None, order=‘C‘):创建一个以fill_value进行填充的数组,fill_value为想要填充的值

import numpy as np
a=np.zeros((2,2))
b=np.ones((2,2))
c=np.empty((2,2))
d=np.eye(2, 2, 0)
e=np.full((2,2), 17)
print("全0数组:",a)
print("全1数组:",b)
print("趋近0数组:",c)
print("对角矩阵:",d)
print("全17数组:",e)
>>>
全0数组: [[0. 0.]
 [0. 0.]]
全1数组: [[1. 1.]
 [1. 1.]]
趋近0数组: [[9.90263869e+067 8.01304531e+262]
 [2.60799828e-310 0.00000000e+000]]
对角矩阵: [[1. 0.]
 [0. 1.]]
全17数组: [[17 17]
 [17 17]]

  

  

原文地址:https://www.cnblogs.com/hezhefly/p/8278842.html

时间: 2024-11-05 20:43:18

一、Numpy基础:创建数组的相关文章

《利用Python进行数据分析·第2版》第四章 Numpy基础:数组和矢量计算

<利用Python进行数据分析·第2版>第四章 Numpy基础:数组和矢量计算 numpy高效处理大数组的数据原因: numpy是在一个连续的内存块中存储数据,独立于其他python内置对象.其C语言编写的算法库可以操作内存而不必进行其他工作.比起内置序列,使用的内存更少(即时间更快,空间更少) numpy可以在整个数组上执行复杂的计算,而不需要借助python的for循环 4.0 前提知识 数据:结构化的数据代指所有的通用数据,如表格型,多维数组,关键列,时间序列等 相关包:numpy pa

《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

第四章 Numpy基础:数组和矢量计算 实话说,用numpy的主要目的在于应用矢量化运算.Numpy并没有多么高级的数据分析功能,理解Numpy和面向数组的计算能有助于理解后面的pandas.按照课本的说法,作者关心的功能主要集中于: 用于数据整理和清理.子集构造和过滤.转换等快速的矢量化运算 常用的数组解法,如排序.唯一化.集合运算等 高效的描述统计和数据聚合/摘要运算 用于异构数据集的合并/连接运算的数据对齐和关系型数据运算 将条件逻辑表述为数组表达式(而不是带有if-elif-else分支

NumPy | 05 创建数组

ndarray 数组除了可以使用底层 ndarray 构造器来创建外,也可以通过以下几种方式来创建. 一.numpy.empty numpy.empty 方法用来创建一个指定形状(shape).数据类型(dtype)且未初始化的数组: numpy.empty(shape, dtype = float, order = 'C') 参数说明: 参数 描述 shape 数组形状 dtype 数据类型,可选 order 有"C"和"F"两个选项,分别代表,行优先和列优先,在

NumPy基础:数组和失量计算

NumPy : Numerical Python,是高性能科学计算和数据分析的基础包. 部分功能: ndarray:一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组: 用于对整组数据进行快速运算的标准数学函数(无需编写循环): 用于读写磁盘数据的工具以及用于操作内存映射文件的工具: 线性代数.随机数生成以及傅里叶变换功能: 用于集成C.C++.Fortran等语言编写的代码工具: 大部分数据分析应用关注的功能: 用于

NumPy基础:数组和矢量计算

今天被老板fire了,还是继续抄书吧,安抚我受伤的小心脏.知识还是得慢慢积累,一步一个脚印,这样或许才是最快的捷径. ------2015-2-16------------------------------------------------------------------ NumPy的ndarray:一种多维数组对象 NumPy一个重要的特点就是N维数组对象(ndarray),该对象是一个快速灵活的大数据集容器.ndarray是一个通用的同构数据多维容器,也就是所有的元素都必须是相同的类

《利用python进行数据分析》NumPy基础:数组和矢量计算 学习笔记

一.有关NumPy (一)官方解释 NumPy is the fundamental package for scientific computing with Python. It contains among other things: a powerful N-dimensional array object sophisticated (broadcasting) functions tools for integrating C/C++ and Fortran code useful

四、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

numpy基础--利用数组进行数据处理

1 利用数组进行数据处理 numpy数组可以将许多种数据处理任务表述为简洁的数组表达式,用数组表达式替换循环的做法,通常被称为矢量化. 例如:我们想要处理一组值(网格型)上计算函数sqrt(x^2 + y^2).np.meshgrid函数接受两个一维数组,并产生两个二维矩阵(对应于两个数组中所有的(x, y)对). 1 >>> a = np.array([1, 2, 3]) 2 >>> b = np.array([4, 5, 6]) 3 >>> ax,

python numpy基础 数组和矢量计算

在python 中有时候我们用数组操作数据可以极大的提升数据的处理效率, 类似于R的向量化操作,是的数据的操作趋于简单化,在python 中是使用numpy模块可以进行数组和矢量计算. 下面来看下简单的例子 import numpy as np data=np.array([2,5,6,8,3]) #构造一个简单的数组 print(data) 结果: [2 5 6 8 3] data1=np.array([[2,5,6,8,3],np.arange(5)])  #构建一个二维数组 print(d

『Numpy』内存分析_利用共享内存创建数组

引.内存探究常用函数 id(),查询对象标识,通常返回的是对象的地址 sys.getsizeof(),返回的是 这个对象所占用的空间大小,对于数组来说,除了数组中每个值占用空间外,数组对象还会存储数组长度.数组类型等其他信息 numpy.ndarray.ctypes.data属性,返回numpy数组的内存位置 array.array.buffer_info(),数组对象的内存信息,返回元素起始地址和元素个数 help(array.buffer_info)'''buffer_info(self,