默默无名的西大研究生学习的第一天——NumPy基础1

发布于:2022-12-07 ⋅ 阅读:(649) ⋅ 点赞:(0)

序言:

当你学习NumPy不难会遇到以下几个内容:

  1. ndarray,一种高效多维数组,提供了基于数组的便捷算术操作以及灵活的广播功能。
  2. 对所有数据进行快速的矩阵计算,而无须编写循环程序。
  3. 对硬盘中数组数据进行读写的工具,并对内存映射文件进行操作。
  4. 线性代数、随机数生成以及傅里叶变换功能。
  5. 用于连接NumPy到C、C++和FORTRAN语言类库的c语言api

NumPy本身并不提供建模和科学函数,理解NumPy的数组以及基于数组的计算将帮助你更高效地使用基于数组的工具,比如pandas(之后会更新)。

1.多维数组对象

        N-维数组对象——ndarray。ndarray是Python中一个快速、灵活的大型数据集容器。数组允许你使用类似于标量的操作语法在整块数据上进行数据计算。

首先我们试着导入Numpy,再生成一个小的随机数组。导入时输入以下代码。

import numpy as np

生成随机数组:

data = np.random.randn(2, 3)
print(data)
r = data * 10
print(r)

生成结果:

[[-1.13953094 -0.72295056  1.38571422]
 [-0.82690695  0.15555587 -2.02832253]]
--------------------------------1
[[-11.39530944  -7.22950564  13.85714218]
 [ -8.26906948   1.55555867 -20.28322527]]

 随机生成了一个2行3列的数组,然后在第3行操作中,所有的元素都同时乘以10.

其每一个数组都有shape属性,用来表征数组每一维度的数量

a = data.shape
print(a)
-----------------------------------
(2, 3)

其每一组数组都有dtype属性,用来表征数组的数据类型

b = data.dtype
print(b)
---------------------------------
float64

1.1 生成ndarray

       生成数组最简单的方式就是使用array函数。array函数接收任意的序列型对象(列表、元组,也包括其他数组等),生成一个新的包含传递数据的NumPy数组。

data1 = [6, 7.5, 8, 0, 1]
arr1 = np.array(data1)
print(arr1)
-------------------------------------
[6.  7.5 8.  0.  1. ]

嵌套序列,包含列表的列表,生成二维数组

data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr2 = np.array(data2)
print(arr2)
--------------------------------------------
[[1 2 3 4]
 [5 6 7 8]]

除了array,我们还可以使用其他函数生成数组

使用zeros函数可以一次性创造全0数组

arr3 = np.zeros((3, 6))
print(arr3)
--------------------------------
[[0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0.]]

使用ones函数可以一次性创造全1数组

arr4 = np.ones((2, 10))
print(arr4)
--------------------------------------------
[[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]

empty则可以创建一个没有初始化数值的数组。

arr5 = np.empty((2, 3, 2))
print(arr5)
-----------------------------------------
[[[6.23042070e-307 1.42417221e-306]
  [1.37961641e-306 1.60220528e-306]
  [8.45596650e-307 9.34611148e-307]]
 [[1.24610383e-306 1.69118108e-306]
  [8.06632139e-308 1.20160711e-306]
  [1.69119330e-306 1.29062229e-306]]]

数组生成函数表

函数名

描述

array

将输入数据(可以是列表、元组、数组以及其他序列)转换为ndarray,如不显式指明数据类型,

将自动推断;默认复制所有的输入数据

asarray 将输入转换为ndarray,但如果输入已经是ndarray则不再复制
arange python内建函数range的数组版,返回一个数组
ones 根据给定形状和数据类型生成全1数组
ones_like 根据所给的数组生成一个形状一样的全1数组
zeros 根据给定形状和数据类型生成全0数组
zeros_like 根据所给的数组生成一个形状一样的全0数组
empty 根据给定形状生成一个没有初始化数值的空数组
empty_like 根据所给的数组生成一个形状一样但没有初始化数值的空数组
full 根据给定形状和数据类型生成指定数值的数组
full_like 根据所给的数组生成一个形状一样但内容是指定数值的数组
eye,identity 生成一个NxN特征矩阵(对角线位置都是1)
本文含有隐藏内容,请 开通VIP 后查看