美文网首页
numpy基础(二)

numpy基础(二)

作者: sixkery | 来源:发表于2018-10-10 16:42 被阅读8次

numpy 数组索引及切片

一维数组的索引以及切片

在numpy 中一维数组的切片和python中的列表一样。切片左闭右开。


In [18]: a
Out[18]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

In [19]: a[2]
Out[19]: 2

In [20]: a[:3]
Out[20]: array([0, 1, 2])
多维数据的索引及切片

多维一般指二维数组,切片的方式有两个写法:

In [22]: a = np.arange(15).reshape(3,5)

In [23]: a
Out[23]:
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])

In [24]: a[1,1]
Out[24]: 6

In [25]: a[1][1]
Out[25]: 6

三维就把二维的进化一下就好了:
按照先维度后行后列。

In [29]: a
Out[29]:
array([[[ 0,  1],
        [ 2,  3]],

       [[ 4,  5],
        [ 6,  7]],

       [[ 8,  9],
        [10, 11]]])

In [30]: a[1,1,1]
Out[30]: 7

布尔型的索引及切片

In [34]: a = np.arange(12).reshape(3,4)

In [35]: a
Out[35]:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

In [36]: a > 5
Out[36]:
array([[False, False, False, False],
       [False, False,  True,  True],
       [ True,  True,  True,  True]])

通常情况下,我们是用来筛选的:

In [37]: a[a>5]
Out[37]: array([ 6,  7,  8,  9, 10, 11])

这样就可以了。

numpy随机数

以正态分布和均匀分布生成的随机数。
均匀分布生成的随机数:

# 以均匀分布的方式生成随机数
# numpy.random.rand() 生成一个0-1之间的随机浮点数或N维浮点数
In [1]: import numpy as np

In [2]: np.random.rand()
Out[2]: 0.7056668317530578

In [3]: np.random.rand(3,3)
Out[3]:
array([[0.85244573, 0.43591207, 0.98709316],
       [0.16660604, 0.84830518, 0.14701655],
       [0.06542728, 0.4029084 , 0.69642433]])

In [4]: np.random.rand(2,2,2)
Out[4]:
array([[[0.19348656, 0.61931929],
        [0.40640615, 0.89262989]],

       [[0.82513219, 0.16872264],
        [0.20941504, 0.47643563]]])

正态分布生成的随机数:

In [5]: np.random.randn()
Out[5]: 0.06686851978010712

In [6]: np.random.randn(3,3)
Out[6]:
array([[-1.66678949, -1.81216186, -0.12748947],
       [ 0.91738847, -0.7739602 ,  0.27155456],
       [ 0.34947274,  0.0610055 ,  1.16152738]])

In [7]: np.random.randn(2,2,2)
Out[7]:
array([[[-0.96374594,  0.00700868],
        [ 0.18058655, -1.42383515]],

       [[-0.88401762, -0.00433659],
        [ 1.54101661,  1.51848019]]])

这样看起来太不直观了,画个图吧

import matplotlib.pyplot as plt

b = np.random.rand(500)
a = np.random.rand(500)

c = np.random.rand(500)
d = np.random.rand(500)
plt.scatter(a,b)
plt.scatter(c,d)
plt.show()

这是随机分布的图:


随机分布图

这是正态分布的图:


正态分布

numpy 随机数的其他用法

在1-10之间随机生成整数

In [36]: np.random.randint(1,10)
Out[36]: 5
# 生成指定数量的随机数
In [37]: np.random.randint(1,10,size=5)
Out[37]: array([5, 4, 7, 2, 2])
# 二维
In [38]: np.random.randint(1,10,size=(2,5))
Out[38]:
array([[2, 7, 2, 9, 1],
       [4, 8, 6, 3, 1]]) 

相关文章

  • Numpy入门

    1、熟悉 numpy 的基础属性 2、numpy 创建 array 3、numpy的基础运算 4、numpy索引 ...

  • numpy基础(二)

    numpy 数组索引及切片 一维数组的索引以及切片 在numpy 中一维数组的切片和python中的列表一样。切片...

  • Numpy基础(二)

    基本的索引和切片 数组切片是原始数组的视图,这意味着数组不会被复制,视图上的任何修改都会直接反映到源数据。 继续,...

  • Numpy基础(二)

    choose函数实现条件筛选 choose函数主要利用下标以及下标所在的位置对相关的数组进行筛选,看下面的示例:

  • Numpy基础二

    1通用函数 通用函数(即ufunc)是一种对ndarray中的数据执行元素级的运算。我们可以将其看做是简单的函数(...

  • Numpy包的一些简单使用

    一、安装 Windows安装: 二、Numpy使用 使用要先导入包 2.1. numpy的基础 2.2. nump...

  • Numpy | 基础操作(矩阵)

    NumPy 基础操作 什么是 NumPy NumPy是Python中科学计算的基础包。它是一个Python库,提供...

  • numpy 基础

    numpy 基础 导入numpy 版本 np常用方法 numpy.array 的基本属性 numpy.array ...

  • Numpy(二)矩阵基础

    1 逻辑判断: 1.1 &: vector = numpy.array([5,10,15,20])equal_to...

  • Python-Numpy学习1

    安装numpy conda install numpy 或者是 pip install numpy 基础用法 ax...

网友评论

      本文标题:numpy基础(二)

      本文链接:https://www.haomeiwen.com/subject/vagpaftx.html