以下代码来源于本博文作者观看大神视频并纯手敲。

目录

numpy的属性

创建array

numpy的运算1

随机数生成以及矩阵的运算2

numpy的索引

array合并

array分割

numpy的浅拷贝和深拷贝

numpy的属性

import numpy as np

array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(array)
print(array.ndim) # 维度 2
print(array.shape) # 形状 (3, 3)
print(array.size) # 大小 9
print(array.dtype) # 元素类型 int32

numpy创建array

import numpy as np

a = np.array([1, 2, 3], dtype=np.int32)
print(a.dtype) # int32
b = np.array([1, 2, 3], dtype=np.float)
print(b.dtype) # float64
c = np.array([1, 2, 3])
d = np.array([[1, 2, 3], [4, 5, 6]])
print(d) # 二维矩阵
zero = np.zeros((2, 3))
print(zero) # 生成两行三列全为零的矩阵
one = np.ones((3, 4))
print(one) # 生成三行四列全为1的矩阵
empty = np.empty((3, 2))
print(empty) # 生成三行两列全都接近于零的矩阵(但不等于0)
e = np.arange(10)
print(e)
f = np.arange(4, 12)
print(f) # [ 4 5 6 7 8 9 10 11]
g = np.arange(1, 20, 3)
print(g)
h = np.arange(8).reshape(2, 4)
print(h) # 重新定义矩阵形状

numpy矩阵的运算

import numpy as np

arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[1, 1, 2], [2, 3, 3]])
print(arr1 + arr2) # 按照位置相加
print(arr1 - arr2)
print(arr1 * arr2)
print(arr1 ** arr2)
print(arr1 / arr2)
print(arr1 % arr2)
print(arr1 // arr2)
print(arr1 + 2) # 所有的元素都加2
arr3 = arr1 > 3
print(arr3) # 判断哪些元素大于3
arr4 = np.ones((3, 5))
print(arr4)
print(arr1)
res = np.dot(arr1, arr4) # 矩阵的乘法
print(res)
res1 = arr1.dot(arr4) # 矩阵的乘法
print(res1)
print(arr1.T) # 转置矩阵
print(np.transpose(arr1)) # 转置矩阵

随机数生成以及矩阵的运算2

import numpy as np

sample1 = np.random.random((3, 2))  # 生成3行2列的从0到1的随机数
print(sample1)
sample2 = np.random.normal(size=(3, 2)) # 生成3行2列符合标准正太分布的随机数
print(sample2)
sample3 = np.random.randint(0, 10, size=(3, 2)) # 生成3行2列的从0-10的随机整数
print(sample3)
print(np.sum(sample1)) # 求和
print(np.min(sample1)) # 求最小值
print(np.sum(sample1, axis=0)) # 对每一列进行求和
print(np.sum(sample1, axis=1)) # 对每一行进行求和
print(np.argmin(sample1)) # 求最小值的索引
print(np.argmax(sample1)) # 求最大值的索引
print(np.mean(sample1)) # 求平均值
print(sample1.mean()) # 求平均值
print(np.median(sample1)) # 求中位数
print(np.sqrt(sample1)) # 开方
sample4 = np.random.randint(0, 10, size=(1, 10))
print(sample4)
print(np.sort(sample4)) # 排序:按行升序
print(np.sort(sample1))
print(np.clip(sample4, 2, 7)) # 小于2的变成2,大于7的变成7

numpy的索引

import numpy as np

arr1 = np.arange(2, 14)
print(arr1) # [ 2 3 4 5 6 7 8 9 10 11 12 13]
print(arr1[2]) # 4
print(arr1[1: 4]) # [3 4 5]
print(arr1[2: -1]) # [ 4 5 6 7 8 9 10 11 12]
print(arr1[: 5]) # [2 3 4 5 6]
print(arr1[-2:]) # [12 13]
arr2 = arr1.reshape(3, 4)
print(arr2) #
print(arr2[1]) # [6 7 8 9]
print(arr2[1][1]) # 7
print(arr2[1, 2]) # 8
print(arr2[:, 2]) # [ 4 8 12] 所有行,第2列
for i in arr2: # 迭代行
print(i)
for i in arr2.T: # 迭代列
print(i)
for i in arr2.flat: # 迭代一个个元素
print(i)

array的合并

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = np.vstack((arr1, arr2)) # 垂直合并
print(arr3)
print(arr3.shape)
arr4 = np.hstack((arr1, arr2)) # 水平合并
print(arr4) # [1 2 3 4 5 6]
print(arr4.shape)
arrv = np.vstack((arr1, arr2, arr3))
print(arrv)
arrh = np.hstack((arr1, arr2, arr4))
print(arrh)
arr = np.concatenate((arr1, arr2, arr1)) # 合并
print(arr)
arr = np.concatenate((arr3, arrv), axis=0) # 垂直合并。合并的array维度要相同,array形状要匹配,axis=0纵向合并
print(arr)
arr = np.concatenate((arr3, arr3), axis=1) # 水平合并
print(arr)
print(arr1.T) # 一维的array不能转置
print(arr1.shape) # (3,)
arr1_1 = arr1[np.newaxis, :]
print(arr1_1) # [[1 2 3]]
print(arr1_1.shape) # (1, 3)
print(arr1_1.T)
arr1_2 = arr1[:, np.newaxis]
print(arr1_2)
print(arr1_2.shape) # (3, 1)
arr1_3 = np.atleast_2d(arr1)
print(arr1_3) # [[1 2 3]]
print(arr1_3.T)

array分割

import numpy as np

arr1 = np.arange(12).reshape((3, 4))
print(arr1)
arr2, arr3 = np.split(arr1, 2, axis=1) # 水平方向分割,分成2份
print(arr2)
print(arr3)
arr4, arr5, arr6 = np.split(arr1, 3, axis=0) # 垂直方向分割,分成2份
print(arr4)
print(arr5)
print(arr6)
arr7, arr8, arr9 = np.array_split(arr1, 3, axis=1) # 水平方向分割成3份,不等分割
print(arr7)
print(arr8)
print(arr9)
arrv1, arrv2, arrv3 = np.vsplit(arr1, 3) # 垂直分割
print(arrv1)
print(arrv2)
print(arrv3)
arrh1, arrh2 = np.hsplit(arr1, 2) # 水平分割
print(arrh1)
print(arrh2)

numpy的浅拷贝和深拷贝

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = arr1 # 引用赋值,共享一块内存,浅拷贝
arr2[0] = 5
print(arr1)
print(arr2)
arr3 = arr1.copy() # 深拷贝
arr3[0] = 10
print(arr1)
print(arr3)

转载请注明博文出处。

python numpy学习的更多相关文章

  1. Python NumPy学习总结

    一.NumPy简介 其官网是:http://www.numpy.org/ NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Num ...

  2. python numpy 学习

    例子 >>> import numpy as np >>> a = np.arange(15).reshape(3, 5) >>> a array ...

  3. python numpy学习记录

    numpy是一个python和矩阵相关的库,在机器学习中非常有用,记录下numpy的基本用法 numpy的数组类叫做ndarray也叫做数组,跟python标准库中的array.array不同,后者只 ...

  4. Python numpy学习笔记(一)

    下边代码是关于numpy的一些基本用法,包括数组和矩阵操作等... import numpy as np print "<== print version ==>" p ...

  5. (转)Python数据分析之numpy学习

    原文:https://www.cnblogs.com/nxld/p/6058572.html https://morvanzhou.github.io/tutorials/data-manipulat ...

  6. Python: NumPy, Pandas学习资料

    NumPy 学习资料 书籍 NumPy Cookbook_[Idris2012] NumPy Beginner's Guide,3rd_[Idris2015] Python数据分析基础教程:NumPy ...

  7. Python数据分析:Numpy学习笔记

    Numpy学习笔记 ndarray多维数组 创建 import numpy as np np.array([1,2,3,4]) np.array([1,2,3,4,],[5,6,7,8]) np.ze ...

  8. Comprehensive learning path – Data Science in Python深入学习路径-使用python数据中学习

    http://blog.csdn.net/pipisorry/article/details/44245575 关于怎么学习python,并将python用于数据科学.数据分析.机器学习中的一篇非常好 ...

  9. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

随机推荐

  1. Python爬虫常用小技巧之设置代理IP

    设置代理IP的原因 我们在使用Python爬虫爬取一个网站时,通常会频繁访问该网站.假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问.所以你可以设置一些代理服务器来 ...

  2. SpringMVC----执行流程+底层解析

    SpringMVC流程图如上面所示,根据上图,串联一下底层源码: 1.在DispatcherServlet中找到doDisPatch 2.观察方法体,然后找到getHandler方法 3.点进方法,发 ...

  3. [考试反思]0904NOIP模拟测试37:守望

    100分并列的还有4个没粘 总分是大脸的一半,然而还只低了2名.差距好大...但其实后面的分数段又很密集,和我都差不了多少... 我可能也是最水的那一个,排行榜前7个里面就我没有AC.全是暴力... ...

  4. 模拟80(a)

    其实隔壁的那套题比这套难的多....一道都不会.. T1 题目中已经给出了递推公式,那么这题就没什么了,直接矩阵乘就完了. 然而考场上并没有看出矩阵,主要是用了好久发明crt,我知道原理,但是不会打了 ...

  5. scss新手使用指南

    还在用死的css写样式吗?那可太麻烦了,各种长串选择器不说,还有各种继承权重有时候还有可能不生效 我的小程序项目也结束了,是时候总结一下scss语法了,毕竟用起来更加方便而且还能精简一点代码,好处多多 ...

  6. 用OpenGL画线

    . 两点之间的连线称之为线段,在屏幕上显示线段放在现在已经不是稀奇的事情,大多数高级图形API都可以轻松实现,我尝试用OpenGL画线,在这里记录一下收获. . OpenGL这个级别的图形API,通常 ...

  7. 只需十四步:从零开始掌握Python机器学习(附资源)

    转载:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找到大量的资源.你现在也在考虑从 Python 入门机器学习吗?本教程或许 ...

  8. 深入理解计算机系统 第二章 信息的表示和处理 Part1 第二遍

    <深入理解计算机系统> 第三版 第二遍读这本书,每周花两到三小时时间,能读多少读多少(这次看了 22 ~ 28 页) 第一遍对应笔记链接 https://www.cnblogs.com/s ...

  9. 导入maven项目pom报错

    打开window->preferences->maven->user settings更换settings.xml即可

  10. 力扣(LeetCode)加一 个人题解

    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: 输入 ...