一、numpy入门

Array

import numpy as np
# create from python list
list_1 = [1, 2, 3, 4]
array_1 = np.array(list_1)#array([1, 2, 3, 4])
list_2 = [5, 6, 7, 8]
array_2 = np.array([list_1, list_2])

  结果:

array([[1, 2, 3, 4],
       [5, 6, 7, 8]])

array_2.shape#(2, 4)
array_2.size#8
array_2.dtype#dtype(‘int64‘)
array_3 = np.array([[1.0,2,3],[4.0,5,6]])
array_3.dtype#dtype(‘float64‘)

array_4 = np.arange(1, 10, 2)#array([1, 3, 5, 7, 9])
np.zeros(5)#array([ 0.,  0.,  0.,  0.,  0.])

  

np.zeros([2,3])

  结果:

array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

np.eye(5)

  结果:

array([[ 1.,  0.,  0.,  0.,  0.],
       [ 0.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.,  0.],
       [ 0.,  0.,  0.,  1.,  0.],
       [ 0.,  0.,  0.,  0.,  1.]])

np.eye(5).dtype#dtype(‘float64‘)

  

a = np.arange(1,10)#array([1, 2, 3, 4, 5, 6, 7, 8, 9])
a[1]#2
a[1:5]#array([2, 3, 4, 5])

  

b = np.array([[1,2,3],[4,5,6]])
b

  结果:

array([[1, 2, 3],
       [4, 5, 6]])

b[1][0]#4
b[1,0]#4

  

c = np.array([[1,2,3],[4,5,6],[7,8,9]])
c

  结果:

array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

c[:2,1:]

  结果:

array([[2, 3],
       [5, 6]])

数组与矩阵运算

快速创建数组

import numpy as np
np.random.randn(10)

  结果:

array([ 0.28906593,  1.4302902 ,  1.10346334,  0.11146373, -0.47497452,
        0.88859371,  0.18953089, -0.65780036, -2.06789973, -1.45679231])

np.random.randint(10, size=20).reshape(4, 5)

  结果:

array([[8, 5, 8, 4, 5],
       [4, 5, 2, 8, 3],
       [3, 6, 9, 7, 3],
       [3, 0, 4, 7, 0]])

数组运算

a = np.random.randint(10, size=20).reshape(4, 5)
b = np.random.randint(10, size=20).reshape(4, 5)
a
b

  结果:

array([[3, 6, 5, 9, 3],
       [3, 3, 4, 6, 8],
       [3, 3, 2, 3, 4],
       [6, 0, 9, 7, 9]])

array([[1, 5, 6, 0, 6],
       [0, 2, 1, 7, 9],
       [7, 6, 1, 3, 8],
       [4, 4, 3, 1, 0]])

a + b

  结果:

array([[ 4, 11, 11,  9,  9],
       [ 3,  5,  5, 13, 17],
       [10,  9,  3,  6, 12],
       [10,  4, 12,  8,  9]])

a-b

  结果:

array([[ 2,  1, -1,  9, -3],
       [ 3,  1,  3, -1, -1],
       [-4, -3,  1,  0, -4],
       [ 2, -4,  6,  6,  9]])

a * b

  结果:

array([[ 3, 30, 30,  0, 18],
       [ 0,  6,  4, 42, 72],
       [21, 18,  2,  9, 32],
       [24,  0, 27,  7,  0]])

a / b

  结果:

 RuntimeWarning: divide by zero encountered in true_divide
  """Entry point for launching an IPython kernel.

array([[ 3.        ,  1.2       ,  0.83333333,         inf,  0.5       ],
       [        inf,  1.5       ,  4.        ,  0.85714286,  0.88888889],
       [ 0.42857143,  0.5       ,  2.        ,  1.        ,  0.5       ],
       [ 1.5       ,  0.        ,  3.        ,  7.        ,         inf]])

np.mat([[1,2,3],[4,5,6]])

  结果:

matrix([[1, 2, 3],
        [4, 5, 6]])

a

  结果:

array([[3, 6, 5, 9, 3],
       [3, 3, 4, 6, 8],
       [3, 3, 2, 3, 4],
       [6, 0, 9, 7, 9]])

np.mat(a)

  结果:

matrix([[3, 6, 5, 9, 3],
        [3, 3, 4, 6, 8],
        [3, 3, 2, 3, 4],
        [6, 0, 9, 7, 9]])

矩阵的运算

A = np.mat(a)
B = np.mat(b)
A
B

  结果:

matrix([[3, 6, 5, 9, 3],
        [3, 3, 4, 6, 8],
        [3, 3, 2, 3, 4],
        [6, 0, 9, 7, 9]])

matrix([[1, 5, 6, 0, 6],
        [0, 2, 1, 7, 9],
        [7, 6, 1, 3, 8],
        [4, 4, 3, 1, 0]])

A + B
A - B

  结果:

matrix([[ 4, 11, 11,  9,  9],
        [ 3,  5,  5, 13, 17],
        [10,  9,  3,  6, 12],
        [10,  4, 12,  8,  9]])

matrix([[ 2,  1, -1,  9, -3],
        [ 3,  1,  3, -1, -1],
        [-4, -3,  1,  0, -4],
        [ 2, -4,  6,  6,  9]])

A * B

  结果: ValueError: shapes (4,5) and (4,5) not aligned: 5 (dim 1) != 4 (dim 0)

a = np.mat(np.random.randint(10, size=20).reshape(4, 5))
b = np.mat(np.random.randint(10, size=20).reshape(5, 4))
a
b
a * b

  结果:

matrix([[4, 4, 3, 2, 7],
        [4, 7, 2, 4, 5],
        [8, 6, 6, 1, 0],
        [5, 9, 6, 2, 8]])

matrix([[5, 8, 9, 2],
        [8, 4, 3, 7],
        [4, 6, 7, 0],
        [5, 8, 5, 3],
        [0, 6, 9, 5]])

matrix([[ 74, 124, 142,  77],
        [104, 134, 136,  94],
        [117, 132, 137,  61],
        [131, 176, 196, 119]])

Array常用函数

a = np.random.randint(10, size=20).reshape(4, 5)
np.unique(a)#array([0, 1, 2, 3, 4, 5, 6, 8, 9])
a

  结果:

array([[4, 1, 2, 5, 3],
       [9, 8, 1, 4, 0],
       [5, 4, 8, 0, 2],
       [8, 6, 2, 4, 3]])

sum(a)#array([26, 19, 13, 13,  8])
sum(a[0])#15
sum(a[:,0])#26
a.max()#9
max(a[0])#5
max(a[:,0])#9

Array的input和output

使用pickle序列化numpy array

import pickle
import numpy as np
x = np.arange(10)#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
f = open(‘x.pkl‘, ‘wb‘)
pickle.dump(x, f)

  

f = open(‘x.pkl‘, ‘rb‘)
pickle.load(f)#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

  

np.save(‘one_array‘, x)

  

np.load(‘one_array.npy‘)#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

  

y = np.arange(20)#array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19])
np.savez(‘two_array.npz‘, a=x, b=y)

  

c = np.load(‘two_array.npz‘)
c[‘a‘]#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
c[‘b‘]#array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19])

  

原文地址:https://www.cnblogs.com/tianqizhi/p/8878749.html

时间: 2024-11-02 17:17:54

一、numpy入门的相关文章

Numpy 入门教程(2)

翻译自官方文档Tentative NumPy Tutorial,有删节. 基本操作 基本的算术运算符都可以应用于数组类型,结果为对应元素之间的运,返回值为一个新的数组. >>> a = array( [20,30,40,50] ) >>> b = arange( 4 ) >>> b array([0, 1, 2, 3]) >>> c = a-b >>> c array([20, 29, 38, 47]) >&g

Numpy 入门教程(1)

翻译自官方文档Tentative NumPy Tutorial,有删节. Numpy 入门教程 NumPy 提供了对多维数组的支持,与Python原生支持的List类型不同,数组的所有元素必须同样的类型.数组的维度被称为axes,维数称为 rank. Numpy的数组类型为 ndarray, ndarray 的重要属性包括: ndarray.ndim:数组的维数,也称为rank ndarray.shape:数组各维的大小tuple 类型,对一个n 行m 列的矩阵来说, shape 为 (n,m)

numpy入门

numpy入门 一.numpy的定义 numpy实际上就是数组的运算,多维的数组对象,ndarray. 1,实际数据 2,元数据 描述信息 二.numpy的基本规范信息 1 # ndarray 2 # 规范,推荐,复用 3 import numpy as np 4 5 ar = np.array([1,2,3,4,5]) 6 print(ar) 7 print([1,2,3,4,5]) #打印列表 8 print(ar.ndim) #打印维度 9 print(ar.shape) #打印数组形状

Python数据分析之Numpy入门

目录 1.什么是numpy 2.安装numpy 3.n维数组对象 4.数组创建 5.数组维度 6.数组元素个数 7.数组元素数据类型 8.改变数组形状 9.数组索引和切片操作 10.数组转换与元素迭代 11.数组级联操作 12.数组数值舍入 13.数组数值添加 14.数组元素去重 15.常用数学函数 16.常用统计函数 17.矩阵运算 1.什么是numpy NumPy(Numerical Python)是Python语言中做科学计算的基础库.重在于数值计算,也是大部分Python科学计算库的基础

python数据分析NumPy入门

numpy库入门 维度:一组数据的组织形式 一维数据:由对等关系的有序或无序数列构成,采用线性方式组织 (列表,集合) (数组) 列表和数组 都是一组数据的有序结构 不同点 列表:数据类型可以不同 数组:数据类型相同 二维数据:由多个一维数据构成,是一维数据的组合形式 (表格)(列表) 多维数据:由一维或二维数据在新维度上扩展形成(多维列表) 高维数据仅利用最基本的二元关系展示数据间的复杂结构 (字典) Numpy Numpy 是一个开源的python科学计算基础库 一个强大的N维数组对象 nd

[学习笔记] [数据分析] 02、NumPy入门与应用

01.NumPy基本功能 ※ 数据类型的转换在实际操作过程中很重要!!! ※ ※ ndarray的基本索引与切片 ※ 布尔型数组的长度必须跟被索引的轴长度一致 花式索引是利用"整数数组"进行索引. 整数数组为索引时候的index.

Python中的Numpy入门教程

1.Numpy是什么 很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数.如果接触过matlab.scilab,那么numpy很好入手. 在以下的代码示例中,总是先导入了numpy: 代码如下: >>> import numpy as np>>> print np.version.version1.6.2 2.多维数

《Python数据科学手册》第二章 Numpy入门2.1—2.3

 2.1 理解Python中的数据类型 Python的用户被其易用性所吸引,其中一个易用之处就在于动态输入,即在Python中,类型是动态推断的.这意味着可以将任何类型的数据指定给任何变量.但是这种类型灵活性也指出了一个事实: Python 变量不仅是它们的值,还包括了关于值的类型的一些额外信息 . C语言整型本质上是对应某个内存位置的标签,里面存储的字节会编码成整型.而Python的整型其实是一个指针,只向包含这个Python对象所有信息的某个内存位置,其中包括可以转换成整型的字节.Pytho

NumPy 入门二

表2-2: NumPy实现的算术运算符 运算符 对应的通用函数 描述 + np.add 加法运算(即 1 + 1 = 2) - np.subtract 减法运算(即 3 - 2 = 1) - np.negative 负数运算( 即 -2) * np.multiply 乘法运算(即 2 \* 3 = 6) / np.divide 除法运算(即 3 / 2 = 1.5) // np.floor_divide 地板除法运算(floor division, 即 3 // 2 = 1) ** np.pow