python创建矩阵

创建二维数组的办法

  1. 直接创建(不推荐)
  2. 列表生产式法(可以去列表生成式 - 廖雪峰的官方网站学习)
  3. 使用模块numpy创建

举个栗子:

创建一个3*3矩阵,并计算主对角线元素之和。


import numpy as npa=np.random.randint(1,100,9).reshape(3,3)  #生成形状为9的一维整数数组a=np.random.randint(1,100,(3,3))           #上面的语句也可以改为这个print(a)(m,n)=np.shape(a)                          # (m,n)=(3,3)sum=0for i in range(m):    for j in range(n):        if i==j:            sum+=a[i,j]print(sum)

  

其中一次输出:
[[96 42 16]
 [19 14 92]
 [39 29 95]]
205

numpy中random:

  • numpy.random.randint(low, high=None, size=None, dtype=‘l‘):生成一个整数或N维整数数组,取数范围:若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。
#numpy.random.randint(low, high=None, size=None, dtype=‘l‘)
import numpy as np
#low=2
np.random.randint(2)#生成一个[0,2)之间随机整数
#low=2,size=5
np.random.randint(2,size=5)#array([0, 1, 1, 0, 1])
#low=2,high=2
#np.random.randint(2,2)#报错,high必须大于low
#low=2,high=6
np.random.randint(2,6)#生成一个[2,6)之间随机整数
#low=2,high=6,size=5
np.random.randint(2,6,size=5)#生成形状为5的一维整数数组
#size为整数元组
np.random.randint(2,size=(2,3))#生成一个2x3整数数组,取数范围:[0,2)随机整数
np.random.randint(2,6,(2,3))#生成一个2x3整数数组,取值范围:[2,6)随机整数
#dtype参数:只能是int类型
np.random.randint(2,dtype=‘int32‘)
np.random.randint(2,dtype=np.int32)

reshape()用法

arange()用于生成一维数组 
reshape()将一维数组转换为多维数组

举个栗子:

import numpy as np

print(‘默认一维为数组:‘, np.arange(5))
print(‘自定义起点一维数组:‘,np.arange(1, 5))
print(‘自定义起点步长一维数组:‘,np.arange(2, 10, 2))
print(‘二维数组:‘, np.arange(8).reshape((2, 4)))
print(‘三维数组:‘, np.arange(60).reshape((3, 4, 5)))

print(‘指定范围三维数组:‘,np.random.randint(1, 8, size=(3, 4, 5)))
默认一维数组: [0 1 2 3 4]
自定义起点一维数组: [1 2 3 4]
自定义起点步长一维数组: [2 4 6 8]
二维数组: [[0 1 2 3]
 [4 5 6 7]]
三维数组: [[[ 0  1  2  3  4]
  [ 5  6  7  8  9]
  [10 11 12 13 14]
  [15 16 17 18 19]]

 [[20 21 22 23 24]
  [25 26 27 28 29]
  [30 31 32 33 34]
  [35 36 37 38 39]]

 [[40 41 42 43 44]
  [45 46 47 48 49]
  [50 51 52 53 54]
  [55 56 57 58 59]]]
指定范围三维数组: [[[2 3 2 1 5]
  [6 5 5 6 7]
  [4 4 6 5 3]
  [2 2 3 5 6]]

 [[2 1 2 4 4]
  [1 4 2 1 4]
  [4 4 3 4 2]
  [4 1 4 4 1]]

 [[6 2 2 7 6]
  [2 6 1 5 5]
  [2 6 7 2 1]
  [3 3 1 4 2]]]
[[[3 3 5 6]
  [2 1 6 6]
  [1 1 3 5]]

 [[7 6 5 3]
  [5 6 5 4]
  [6 5 7 1]]]

shape()用法

查看矩阵或者数组的维数

建立一个3×3的单位矩阵e, e.shape为(3,3)

参考博文:https://blog.csdn.net/kancy110/article/details/69665164

    行走菜鸟界的小辣鸡~

原文地址:https://www.cnblogs.com/pipiyan/p/10445948.html

时间: 2024-10-24 09:08:00

python创建矩阵的相关文章

Python创建list和按照索引访问list

Python创建list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.比如,列出班里所有同学的名字,就可以用一个list表示:>>> ['Michael', 'Bob', 'Tracy']['Michael', 'Bob', 'Tracy']list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的. 构造list非常简单,按照上面的代码,直接用 [ ] 把list的所有元素都括起来,就是一个list对象.通常,

python创建迅雷批量任务

其实不是真的创建了批量任务,而是用python创建一个文本文件,每行一个要下载的链接,然后打开迅雷,复制文本文件的内容,迅雷监测到剪切板变化,弹出下载全部链接的对话框~~ 实际情况是这样的,因为用python分析网页非常,比如下载某页中的全部pdf链接 1 from __future__ import unicode_literals 2 from bs4 import BeautifulSoup 3 import requests 4 import codecs 5 6 r = request

使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据

应用场景: 我们需要设计一个数据库来保存多个文档中每个文档的关键字.假如我们每个文档字符都超过了1000,取其中出现频率最大的为我们的关键字. 假设每个文档的关键字都超过了300,每一个文件的0-299号存储的是我们的关键字.那我们要建这样一个数据库,手动输入这样的一个表是不现实的,我们只有通过程序来帮我实现这个重复枯燥的操作. 具体的示意图如下所示: 首先图1是我们的原始表格: 图1 这个时候我们需要程序来帮我们完成自动字段的创建和数据的插入. 图2 上图是我们整个表的概况.下面我们就用程序来

Kivy A to Z -- 如何从Python创建一个基于Binder的Service及如何从Java访问Python创建的Service

<Kivy A to Z -- 如何从python代码中直接访问Android的Service> 一文中讲到了如何从python访问java的service,这一篇再来讲下如何创建一个基于Binder的Python Service以及如何从Java代码中访问这个Python创建的Service. 先来看代码,再作下解释: 接<Kivy A to Z -- 如何从python代码中直接访问Android的Service>一文,我们在相关的文件中增加代码: binder_wrap.cp

使用Django和Python创建Json response

使用jquery的.post提交,并期望得到多个数据,Python后台要使用json格式. 不指定datatype为json,让jquery自行判断数据类型.(注:跨域名请求数据,则使用 jsonp字符串) 若post指定数据类型json,则python取post数据,我觉着麻烦.让jquery智能判断,python返回字典最方便. 一般使用字典,而不是列表来返回 JSON内容. import json from django.http import HttpResponse response_

【译】使用python创建一个简单的restful风格的webservice应用

这是一个如何使用python快速构建简单restful风格webservice的应用教程. 1.分析rest路由规则 rest风格的服务通常使用web.py来创建服务器端脚本,一般情况下包含两个url路径: 一个是为了查询所有用户,一个是为了查询单个用户. 例如下面的url: http://localhost:8080/users http://localhost:8080/users/{id} 2.搭建web.py环境 首先你应该安装web.py模块到你的python环境下.如果你之前没有的话

[翻译] 使用 Python 创建你自己的 Shell:Part II

使用 Python 创建你自己的 Shell:Part II [TOC] 原文链接与说明 https://hackercollider.com/articles/2016/07/06/create-your-own-shell-in-python-part-2/ 本翻译文档原文选题自 Linux中国 ,翻译文档版权归属 Linux中国 所有 在 part 1 中,我们已经创建了一个主要的 shell 循环.切分了的命令输入,以及通过 fork 和 exec 执行命令.在这部分,我们将会解决剩下的

[翻译] 使用 Python 创建你自己的 Shell:Part I

使用 Python 创建你自己的 Shell:Part I [TOC] 原文链接与说明 https://hackercollider.com/articles/2016/07/05/create-your-own-shell-in-python-part-1/ 本翻译文档原文选题自 Linux中国 ,翻译文档版权归属 Linux中国 所有 我很想知道一个 shell (像 bash,csh 等)内部是如何工作的.为了满足自己的好奇心,我使用 Python 实现了一个名为 yosh (Your O

python 下矩阵倒置的实现

Python下矩阵倒置,可以用双重循环,或者是zip实现. 循环实现: 嵌套的列表推导式 matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]matrix_t = [[row[col] for row in matrix] for col in range(len(matrix[0]))]matrix_t[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] 原理很简单:先循环列,在固定列上循环每一行