前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python数据分析(3)-numpy中nd数组的创建

Python数据分析(3)-numpy中nd数组的创建

作者头像
锦小年
发布于 2018-01-02 06:08:56
发布于 2018-01-02 06:08:56
2.1K00
代码可运行
举报
文章被收录于专栏:锦小年的博客锦小年的博客
运行总次数:0
代码可运行

1、ndarray的内存结构

和其他的库一样,每个库都可能有自己独特的数据结构,例如OpenCV,numpy库的多维数组叫做ndarray( N dimensionality array ),它的内存结构如下图:

ndarray的内存结构 在这个结构体中有两个对象,一个是用来描述元素类型的头部区域,一个是用来储存数据的数据区域。(事实上大多数数据类型的数据都是这么储存的)。

2、ndarray对象的创建

2.1 ndarray多维数组的创建常规方法 创建一个3*3的数组并在屏幕打印它以及它的类型和维数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np

x = np.array([[0,1,2],[3,4,5],[6,7,8]],dtype = np.int32)
print('这个数组是:',x)
print('这个数组的数据类型是:',x.dtype)
print('这个数组的大小:',x.shape)

屏幕输出结果:

我们也可以采用更加直接的办法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
x = np.arange(0,9).reshape(3,3)
print('这个数组是:',x)
print('这个数组的数据类型是:',x.dtype)
print('这个数组的大小:',x.shape)

屏幕上打印输出的结果和前一种的结果是一样的。

2.2 ndarray多维数组的创建其他方法 除了常规方法,numpy还提供了一些其他的创建方法: 2.2.1 创建全0或者全1的数组

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np

x = np.ones([3,3])
print('这个数组是:',x)
print('这个数组的数据类型是:',x.dtype)
print('这个数组的大小:',x.shape)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> x = np.arange(6) 
>>> x = x.reshape(2,3)
>>> x     
array([[0, 1, 2], [3, 4, 5]]) 
>>> np.ones_like(x) 
array([[1, 1, 1], [1, 1, 1]])
>>> y = np.arange(3, dtype=np.float) 
>>> y 
array([ 0., 1., 2.]) 
>>> np.ones_like(y) 
array([ 1., 1., 1.])

当然也可以填充其他的数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
x = np.full([3,3],np.inf)
print('这个数组是:',x)
print('这个数组的数据类型是:',x.dtype)
print('这个数组的大小:',x.shape)

打印输出:

2.2.2 从已存在的数据中创建数组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> np.array([1, 2, 3]) 
array([1, 2, 3])

>>> np.array([1, 2, 3.0]) 
array([ 1., 2., 3.])

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

>>> np.array([1, 2, 3], ndmin=2) 
array([[1, 2, 3]])

>>> np.array([1, 2, 3], dtype=complex) 
array([ 1.+0.j, 2.+0.j, 3.+0.j])

>>> x = np.array([(1,2),(3,4)],dtype=[('a','<i4'),('b','<i4')]) 
>>> x['a'] 
array([1, 3])

2.2.3 创建记录阵列(record array,可能翻译不准):创建一个阵列,将其他数组集中在一起管理,并可以命名:

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np

x1 = np.arange(0,3)
x2 = np.array(['ff','hh','yy'])
x3 = ([1,2,3])
r = np.core.records.fromarrays([x1,x2,x3],names='a,b,c')
print(r[2])
print(r.a)

2.2.4 创建字符数组 numpy提供了专门的函数创建字符数组:np.chararray() 首先看看它的参数: Parameters | ———- | shape : tuple | Shape of the array. | itemsize : int, optional | Length of each array element, in number of characters. Default is 1. | unicode : bool, optional | Are the array elements of type unicode (True) or string (False). | Default is False. | buffer : int, optional | Memory address of the start of the array data. Default is None, | in which case a new array is created. | offset : int, optional | Fixed stride displacement from the beginning of an axis? | Default is 0. Needs to be >=0. | strides : array_like of ints, optional | Strides for the array (see ndarray.strides for full description). | Default is None. | order : {‘C’, ‘F’}, optional | The order in which the array data is stored in memory: ‘C’ -> | “row major” order (the default), ‘F’ -> “column major” | (Fortran) order.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 Examples
 |  --------
 |  >>> charar = np.chararray((3, 3))
 |  >>> charar[:] = 'a'
 |  >>> charar
 |  chararray([['a', 'a', 'a'],
 |         ['a', 'a', 'a'],
 |         ['a', 'a', 'a']],
 |        dtype='|S1')
 |  
 |  >>> charar = np.chararray(charar.shape, itemsize=5)
 |  >>> charar[:] = 'abc'
 |  >>> charar
 |  chararray([['abc', 'abc', 'abc'],
 |         ['abc', 'abc', 'abc'],
 |         ['abc', 'abc', 'abc']],
 |        dtype='|S5')

2.2.5 创建数值数组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np

x1 = np.arange(0,3,1)
x2 = np.linspace(0,3,4)
x3 = np.logspace(1,8,3)
x4 = np.mgrid[0:3,0:3]
x5 = np.ogrid[0:3,0:3]
print(x1,x2,x3,x4,x5)

2.2.6 创建矩阵

2.2.7 矩阵类(The matrix class)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
CSS clip-path 属性
clip-path 是CSS中的一个神奇属性,它能够让你像魔术师一样,对网页元素施展“裁剪魔法”——只展示元素的一部分,隐藏其余部分。想象一下,不用依赖图片编辑软件,直接在浏览器中就能实现元素的各种不规则形状裁剪。✨
空白诗
2024/06/14
2670
CSS clip-path 属性
仅用 CSS 实现赛博朋克 2077 风格视觉效果
《赛博朋克2077》 是一款动作角色类游戏,于 2020年12月10日 登陆各大游戏平台。故事发生在夜之城,权力更迭和身体改造是这里不变的主题。玩家将扮演一名野心勃勃的雇佣兵:V,追寻一种独一无二的植入体——获得永生的关键。它以自由的探索性,较高的操控度以及惊艳的视觉特效收获了一大批玩家。我非常喜欢 2077 官网的设计风格,因此本篇文章主要以 2077 官网为例,通过几个例子,依次实现赛博朋克风格元素效果。
zz_jesse
2021/07/30
5910
2 分钟搞定 3 个现代 CSS 特性
Clip Paths 能把元素元素“裁剪”成特定形状,使用 CSS 提供的 polygon、circle、ellipse 等这些函数实现。举个例子:
Javanx
2020/02/14
5450
每天一个小技巧:CSS clip-path 的妙用 Clip Path分类Clippy
CSS 的 clip-path 属性是 clip 属性的升级版,它们的作用都是对元素进行 “剪裁”,不同的是 clip 只能作用于 position 为 absolute 和 fixed 的元素且剪裁区域只能是正方形,而 clip-path 更加强大,可以以任意形状去裁剪元素,且对元素的定位方式没有要求。基于这样的特性,clip-path 常用于实现一些炫酷的动画效果。
MudOnTire
2020/07/22
4.2K0
每天一个小技巧:CSS clip-path 的妙用
                            Clip Path分类Clippy
CSS 的快乐:画一个可爱的三只小鸟 Button
今天我们就一起来画下这个可爱的 Button 吧!纯 CSS,没用到图片和 JS 呦~
神说要有光zxg
2023/02/01
5670
学习css的clip-path属性
clip-path 是 CSS 的一个属性,它允许你定义一个剪裁区域,用于裁剪元素的显示区域。这个剪裁区域可以是基本形状、SVG 路径、或是外部图像等。被裁剪的元素只会显示在定义的剪裁区域内,超出部分会被隐藏。
心安事随
2024/07/29
1810
学习css的clip-path属性
七夕,当然少不了纯CSS的点缀啦
单身的程序猿或准备脱单的程序猿怎么办,常规操作是const girl = new Object(),没对象就自己创建一个对象过节呗。可是笔者今天想用纯CSS为单调的七夕做一些点缀呢。
JowayYoung
2020/08/26
4070
七夕,当然少不了纯CSS的点缀啦
分享14 个非常实用的CSS技巧
英文 | https://ishratumar.medium.com/14-awesome-css-properties-you-need-to-know-9cee5b364990
前端达人
2022/11/25
1.1K0
分享14 个非常实用的CSS技巧
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
在群里会有同学问相关的问题,怎么样使用 CSS 实现一个内切角按钮呢、怎么样实现一个带箭头的按钮呢?
玖柒的小窝
2021/12/03
1.4K0
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
CSS奇思妙想之-利用CSS裁剪(clip-path)完成各种图形
在日常开发当中,如果想要开发多边形,一般都需要多个盒子或者伪元素的帮助,有没有一直办法能只使用一个盒子实现呢?
肥晨
2023/04/23
1.8K0
CSS 实现“故障”特效
这些效果要是综合运用到业务中应该很吸引眼球。今日早读文章由腾讯@chokcoco投稿分享。
Nealyang
2020/02/19
2.3K0
CSS 实现“故障”特效
30个CSS碎片——这不仅仅是皮囊!
今天小师妹将给大家分享一部由CSS技术实现的作品。它将再一次证明CSS的强大力量。
程序员老鱼
2022/12/02
5900
奇妙的 CSS shapes(CSS图形)
CSS 发展到今天已经越来越强大了。其语法的日新月异,让很多以前完成不了的事情,现在可以非常轻松的做到。今天就向大家介绍几个比较新的强大的 CSS 功能: clip-path shape-outside shape 的意思是图形,CSS shapes 也就是 CSS 图形的意思,也就是使用 CSS 生成各种图形(圆形、矩形、椭圆、多边形等几何图形)。 CSS3之前,我们能做的只有矩形,四四方方,条条框框。 CSS3 CSS3出来后,我们有了更广阔的施展空间,通过 border-radius border
Sb_Coco
2018/05/28
1.5K0
CSS Painting API
本文是 CSS Houdini 之 CSS Painting API 系列第四篇。
Sb_Coco
2022/12/19
1.1K0
CSS Painting API
CSS样式clip-path绘制图形裁剪图片
发现clip-path绘制图形的网站 http://bennettfeely.com/clippy/ 专门介绍clip-path的使用,几乎任何形状都可以做出来,下面使用clip-path制作正三边形至正八边形以及其它图形的方法,并且有些正多边形需要通过一定的计算,顺便放了计算公式。通过应用这些正多边形和其它的形状的实现方法来学习clip-path这个样式。
小弟调调
2018/10/18
1.8K0
CSS样式clip-path绘制图形裁剪图片
纯CSS实现的文字效果竟然可以这么酷炫!
CSS是一门很特殊的语言,你认为CSS只能用来控制网页的结构与样式,但只要你有丰富的想象力,就能创造无限可能。
程序员老鱼
2022/12/02
2.1K0
每个前端开发需要了解的15个强大的CSS属性
这篇文章介绍了15个重要的CSS属性,旨在提高读者的CSS知识和技能。文章以清晰的方式解释了每个属性的作用和用法,并提供了相应的示例代码。通过这篇文章,读者可以了解到一些有趣且实用的CSS属性。
前端小智@大迁世界
2023/07/22
2940
每个前端开发需要了解的15个强大的CSS属性
CSS 奇思妙想边框动画
今天逛博客网站 -- shoptalkshow[1],看到这样一个界面,非常有意思:
微芒不朽
2022/09/13
9260
那些不常见,但却非常实用的css属性(整理不易)
可以把 块容器 中的内容限制为指定的行数。并且在超过行数后,在最后一行显示"..."
winty
2020/06/16
2.4K0
那些不常见,但却非常实用的css属性(整理不易)
【前端艺术】纯CSS3鼠标hover图片条纹遮罩层动画效果源码
这是一款纯CSS3鼠标hover图片条纹遮罩层动画特效。该特效在鼠标悬停图片上面时,背景遮罩层变形为棱形,中间显示图片,旁边是紫色条纹。同时展示图片的描述文字和链接图标等。
用户5997198
2019/08/09
1.3K0
【前端艺术】纯CSS3鼠标hover图片条纹遮罩层动画效果源码
相关推荐
CSS clip-path 属性
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档