numpy 学习笔记

导入 numpy 包

import numpy as np

声明 ndarray 的几种方法

方法一,从list中创建

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

方法二,指定维度,不赋值

matrix = np.ndarray(shape=(3,4))
print(matrix)
[[9.66308774e-312 2.47032823e-322 0.00000000e+000 0.00000000e+000][1.89146896e-307 2.42336543e-057 5.88854416e-091 9.41706373e-047][5.44949034e-067 1.46609735e-075 3.99910963e+252 3.43567991e+179]]

由上述的输出可见,矩阵内部的值未初始化,其实这都是原来对应内存地址中的数值

方法三,指定维度,初始化成全零的矩阵

matrix = np.zeros(shape=[3,4])
print(matrix)
[[0. 0. 0. 0.][0. 0. 0. 0.][0. 0. 0. 0.]]

方法四,使用默认参数,赋值成从0至arange的一组数

使用默认参数(arange),生成从0至arange的一组数据

matrix = np.arange(12).reshape(3,4)
print(matrix)
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]

方法五,生成随机数数组

arr = np.random.random((1,5))  # 生成 1 行 5 列的一组数
[[ 2.42219258  0.67773029  5.412364    6.21824333  1.2890334 ]]

数值计算

操作全部元素

乘法

print(matrix)
print("after times 10 on every elements:")
print(matrix * 10)
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
after times 10 on every elements:
[[  0  10  20  30][ 40  50  60  70][ 80  90 100 110]]

加法

print(matrix)
print("after plus 10 on every elements:")
print(matrix + 10)
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
after plus 10 on every elements:
[[10 11 12 13][14 15 16 17][18 19 20 21]]

操作部分元素

print(matrix)
print("after times 10 on every elements:")
print(matrix[1] * 10)
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
after times 10 on every elements:
[40 50 60 70]

计算矩阵的秩

m = np.array([[1,2,3], [0,1,2], [0,0,1]])
np.linalg.matrix_rank(m, tol=None)

output:

3

索引部分元素

取一行数据

print(matrix)
print("a line of a matrix:")
print(matrix[1])
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
a line of a matrix:
[4 5 6 7]

取一列数据

以行的形式返回,得到一个行向量

print(matrix)
print("a column of a matrix:")
print(matrix[:,1])
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
a column of a matrix:
[1 5 9]

以列的形式返回,得到一个列向量

print(matrix)
print("a column of a matrix:")
print(matrix[:,1:2])
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
a column of a matrix:
[[1][5][9]]

类型转换

astype 方法可以完成类型转换

>>> import numpy as np
>>> x = np.array([0.1, 0.2, 1.2])
>>> x.astype('int')
array([0, 0, 1])

numpy 转 list

numpy 变量自带 tolist 方法

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

参考资料

《利用python进行数据分析》. https://book.douban.com/subject/25779298/
Numpy. Quickstart tutorial. https://docs.scipy.org/doc/numpy/user/quickstart.html

转载于:https://www.cnblogs.com/fengyubo/p/9092665.html

numpy 学习笔记相关推荐

  1. Numpy学习笔记(下篇)

    目录 Numpy学习笔记(下篇) 一.Numpy数组的合并与分割操作 1.合并操作 2.分割操作 二.Numpy中的矩阵运算 1.Universal Function 2.矩阵运算 3.向量和矩阵运算 ...

  2. NumPy学习笔记 一

    NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  3. numpy学习笔记:np.zeros应用——生成三通道全黑Mask(蒙版)

    numpy学习笔记:np.zeros应用--生成三通道全黑Mask(蒙板) np.zeros官方文档:np.zeros官方文档 下面是一段生成256*256三通道全黑mask的demo import ...

  4. NumPy学习笔记前言

    前言目录 NumPy学习笔记前言 NumPy简介 NumPy学习准备 NumPy中文网 NumPy学习笔记前言 这里主要分享一下我个人学习NumPy的笔记,希望大家多多交流学习,这也是我第一次写CSD ...

  5. 【Numpy学习笔记】

    Numpy学习笔记 1. NumPy的详细教程(官网手册翻译) https://blog.csdn.net/xiaoxiangzi222/article/details/53084336 2. 学习笔 ...

  6. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  7. numpy学习笔记2

    今天终于有一个粉丝了,号开心,好吧,继续学习 1.  分割数组 hsplit 数组沿着水平方向分割为3个相同大小的子数组 vsplit 函数将把数组沿着垂直方向分割: dsplit 函数将按深度方向分 ...

  8. 【numpy学习笔记】矩阵操作

    转置 a = np.array([[1,2,3],[3,4,5]],dtype='float') # array([[ 1., 2., 3.],[ 3., 4., 5.]]) a.T # array( ...

  9. 【numpy学习笔记】数组的创建和基本运算

    1. 创建numpy数组 1.1 通过tuple和list创建数组 import numpy as np 通过tuple t=(1,2,3) a=np.array(t,dtype= 'int') #a ...

最新文章

  1. 2021年春季学期-信号与系统-第七次作业参考答案
  2. 实战生产环境:kubeadmin安装1.13.3最新版k8s集群教程
  3. Lesson 13.3 梯度不平稳性与Glorot条件
  4. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第33篇]Bellcore攻击是如何攻击使用CRT的RSA的?
  5. 自动分页,返回时跳回指定页
  6. Spring boot(8)---手动构建maven项目springboot
  7. 离开HK后的第二篇所感--信心
  8. 阿里字节面试题,多线程打印程序
  9. 深入浅出裸测之道---单元测试的单元化
  10. golang log模块之log4go使用介绍
  11. 3D MRI brain tumor segmentation using autoencoder regularization
  12. 拒绝外部投资、融资及收购,Epic是如何成为美国电子病历“一姐”的?
  13. How to support Specular-Glossiness in Three.js
  14. Request textDocument/codeAction failed.
  15. GEE批量提取站点DN值—以Landsat 8 C2 SR 产品为例
  16. c语言kill暂停和恢复进程,Linux暂停和恢复进程
  17. 小白:测试的逻辑思维
  18. div+css画六边形
  19. 用技术入股解决互联网创业技术问题,这事儿靠谱吗?
  20. JSD2204-java基础复习

热门文章

  1. ES transport client批量导入
  2. Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法
  3. 浅谈高风险多团队协同的项目管理方法
  4. Netbeans ClassFormatException: Invalid byte tag in
  5. 海量数据处理的思路和方法
  6. linux搭建vsftpd虚拟用户访问
  7. Judge Judy
  8. 华为荣耀8青春版计算机在哪里,华为荣耀8青春版
  9. 内存管理模拟程序c语言,C语言 内存管理详解
  10. 把脉Linux上USB数据流