一、过滤:一个约束条件(略复杂的情况)
找出data中,满足第三列的元素在vet中的元素。

julia>data =[1 2 3; 4 5 6 ;7 8 9 ;10 11 12];julia>vet =[6 ,9];julia>condition =map(x->in(x,vet),data[:,3]);julia>data[condition,:]
2×3 Array{Int64,2}:4  5  67  8  9

还有其它方法么?

二、过滤:两个约束条件的情况

第一列中值为4,第二列中值>=5的

julia>data[(data[:,2].>=5 & data[:,1].==4),:]
1×3 Array{Int64,2}:4  5  6```几种error的情况:```
julia> data[(data[:,2].>=5 & data[:,1]==4),:] # error! =>.julia> data[data[:,2].>=5 & data[:,1].==4,:] # error!=>(),用括号理好&的优先次序julia> data[(data[:,2].>=5 && data[:,1]==4),:] # error! =>&&

三、元素替代

1、把data中的元素为2的,全部改为0

julia> data =[1,2,3,4,5,2,3,1]
8-element Array{Int64,1}:12345231julia> data[data.==2] .=0
2-element view(::Array{Int64,1}, [2, 6]) with eltype Int64:00julia> data
8-element Array{Int64,1}:10345031

2、如果要把以下data中“”,用0代替,有什么操作方式?

julia> data
9×12 Array{Any,2}:8     ""   ""   ""   ""   ""   ""   ""   ""  ""  ""  """"   ""  3    6     ""   ""   ""   ""   ""  ""  ""  """"  7     ""   ""  9     ""  2     ""   ""  ""  ""  """"  5     ""   ""   ""  7     ""   ""   ""  ""  ""  """"   ""   ""   ""  4    5    7     ""   ""  ""  ""  """"   ""   ""  1     ""   ""   ""  3     ""  ""  ""  """"   ""  1     ""   ""   ""   ""  6    8    ""  ""  """"   ""  8    5     ""   ""   ""  1     ""  ""  ""  """"  9     ""   ""   ""   ""  4     ""   ""  ""  ""  ""

只需要:

julia> data[data .== ""] .= 0  # 其中两个点,均不能少!
julia> data
9×12 Array{Any,2}:8  0  0  0  0  0  0  0  0  0  0  00  0  3  6  0  0  0  0  0  0  0  00  7  0  0  9  0  2  0  0  0  0  00  5  0  0  0  7  0  0  0  0  0  00  0  0  0  4  5  7  0  0  0  0  00  0  0  1  0  0  0  3  0  0  0  00  0  1  0  0  0  0  6  8  0  0  00  0  8  5  0  0  0  1  0  0  0  00  9  0  0  0  0  4  0  0  0  0  0

猜一猜如果:

julia> data[data .= ""] .= 0 # bug

四、把Array 拆分成几个小Array

方法一: map

julia> data
9×9 Array{Any,2}:8  0  0  0  0  0  0  0  00  0  3  6  0  0  0  0  00  7  0  0  9  0  2  0  00  5  0  0  0  7  0  0  00  0  0  0  4  5  7  0  00  0  0  1  0  0  0  3  00  0  1  0  0  0  0  6  80  0  8  5  0  0  0  1  00  9  0  0  0  0  4  0  0
尝试一:失败
A =map((p,q)->data[1:3,p:q], 1:3:7, 3:3:9) #
3-element Array{Array{Any,2},1}:[8 0 0; 0 0 3; 0 7 0][0 0 0; 6 0 0; 0 9 0][0 0 0; 0 0 0; 2 0 0]julia> A[1]
3×3 Array{Any,2}:8  0  00  0  30  7  0
julia> A[2]
3×3 Array{Any,2}:0  0  06  0  00  9  0julia> A[3]
3×3 Array{Any,2}:0  0  00  0  02  0  0

有没有办法,一口气拆成N个 3x3的矩阵?

为什么才3个元素? 因为是一一对应的关系,[1,4,7]<=>[1,4,7],不是循还。

尝试2:失败
julia> A =map((p,q)->data[p:p+2,q:q+2], [1,4,7],[1,4,7])
3-element Array{Array{Any,2},1}:[8 0 0; 0 0 3; 0 7 0][0 0 7; 0 4 5; 1 0 0][0 6 8; 0 1 0; 4 0 0]julia> A[1]
3×3 Array{Any,2}:8  0  00  0  30  7  0尝试3: 成功!双重map + flattenjulia> t =map(p->map(q->data[p:p+2,q:q+2],[1,4,7]),[1,4,7])
3-element Array{Array{Array{Any,2},1},1}:[[8 0 0; 0 0 3; 0 7 0], [0 0 0; 6 0 0; 0 9 0], [0 0 0; 0 0 0; 2 0 0]][[0 5 0; 0 0 0; 0 0 0], [0 0 7; 0 4 5; 1 0 0], [0 0 0; 7 0 0; 0 3 0]][[0 0 1; 0 0 8; 0 9 0], [0 0 0; 5 0 0; 0 0 0], [0 6 8; 0 1 0; 4 0 0]]julia> collect(Iterators.flatten(t))
9-element Array{Array{Any,2},1}:[8 0 0; 0 0 3; 0 7 0][0 0 0; 6 0 0; 0 9 0][0 0 0; 0 0 0; 2 0 0][0 5 0; 0 0 0; 0 0 0][0 0 7; 0 4 5; 1 0 0][0 0 0; 7 0 0; 0 3 0][0 0 1; 0 0 8; 0 9 0][0 0 0; 5 0 0; 0 0 0][0 6 8; 0 1 0; 4 0 0]尝试4:成功!大杀器,把repeat也搬出来
julia>using  DelimitedFiles;
julia> map((i,j)->data[i:i+2,j:j+2],repeat([1,4,7],inner=3),repeat([1,4,7],outer=3))
9-element Array{Array{Any,2},1}:[8 0 0; 0 0 3; 0 7 0][0 0 0; 6 0 0; 0 9 0][0 0 0; 0 0 0; 2 0 0][0 5 0; 0 0 0; 0 0 0][0 0 7; 0 4 5; 1 0 0][0 0 0; 7 0 0; 0 3 0][0 0 1; 0 0 8; 0 9 0][0 0 0; 5 0 0; 0 0 0][0 6 8; 0 1 0; 4 0 0]

2、列表推导式

简单,快捷。
尝试5: 成功!

julia> B=[data[p:p+2,q:q+2] for p in [1,4,7] for q in [1,4,7]]
9-element Array{Array{Any,2},1}:[8 0 0; 0 0 3; 0 7 0][0 0 0; 6 0 0; 0 9 0][0 0 0; 0 0 0; 2 0 0][0 5 0; 0 0 0; 0 0 0][0 0 7; 0 4 5; 1 0 0][0 0 0; 7 0 0; 0 3 0][0 0 1; 0 0 8; 0 9 0][0 0 0; 5 0 0; 0 0 0][0 6 8; 0 1 0; 4 0 0]

五、Array中元素的删除

1、filter!

把b中的为3的元素删除

julia> b =[1,2,3,4,5,6]
6-element Array{Int64,1}:123456julia> filter!(x->x!=3,b)
5-element Array{Int64,1}:12456

2、deleteat!

也可以,大家可以试一下。删除特定位置的元素

julia> deleteat!([6, 5, 4, 3, 2, 1], 1:2:5)
3-element Array{Int64,1}:531

Julia: Array元素过滤、元素替代、元素删除等酸爽操作相关推荐

  1. 过滤选择器——子元素过滤选择器

    在页面开发过程中,常常遇到突出指定某行的需求.虽然使用基本过滤选择器:eq(index)可以实现单个表格的显示,但不能满足大量数据和多个表格的选择需求.为了实现这样的功能,jQuery中可以通过子元素 ...

  2. jquery子元素过滤选择器

    jquery子元素过滤选择器 子元素过滤选择器需要我们时刻理元素的父元素和子元素,只要这样我们才能运用的得心应手. 1.:nth-child选择器 匹配每一个父元素下面的的第index个子元素或者奇偶 ...

  3. 2015-07-22 JQuery 第二课(JQ元素获取,添加,删除,判断,遍历,取值,样式设置,改变对象,切换)...

    1.获取元素: 1).size(): 获取元素的个数. $("img").size():获取有多少个img. 2).eq():获取元素. $("img[title]&qu ...

  4. php去除数组中的第一个元素,php如何删除数组的第一个元素和最后一个元素

    对于一个php数组,该如何删除该数组的第一个元素或者最后一个元素呢?其实这两个过程都可以通过php自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如何来操作. ( ...

  5. php删除数组中的空元素_PHP | 从数组中删除所有出现的元素

    php删除数组中的空元素 Given an array and we have to remove all occurrences of an element from it. 给定一个数组,我们必须 ...

  6. python删除最后一个元素_Numpy-从一维数组中删除最后一个元素的最佳方法?

    NumPy数组的大小是固定的,因此不能就地移除元素.例如,使用del不起作用:>>> import numpy as np >>> arr = np.arange( ...

  7. html添加删除元素属性,jQuery学习笔记——.attr()和.removeAttr()方法操作元素属性

    今天主要和大家一起分享一下如何使用jQuery的jQuery就可以让我们轻松的读取,添加,更改或删除一个(或多个)元素中的任何属性,在jQuery中我们可以使用下面的方法来实现:.attr():jQu ...

  8. 6.:first-child子元素过滤选择器

    通过上面章节的学习,我们知道使用:first过滤选择器可以获取指定父元素中的首个子元素,但该选择器返回的只有一个元素,并不是一个集合,而使用:first-child子元素过滤选择器则可以获取每个父元素 ...

  9. 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3-&g ...

  10. jQuery元素过滤

    索引过滤 索引选择器是jQuery过滤选择器的一部分.与此同时,也存在功能相似的索引相关的方法,包括eq().first().last() eq() eq()方法匹配元素的集合为指定的索引的哪一个元素 ...

最新文章

  1. python列表用法详解(查找、添加、删除、修改、复制、循环遍历、列表嵌套)
  2. 农发行:BI数据平台建设
  3. html hover 效果,CSS八种让人眼前一亮的HOVER效果的示例代码
  4. 无线路由器天线上绑几个电池,真的会增强发射信号吗?
  5. 转载(Asp.net Core 中试使用ZKWeb.System.Drawing)
  6. 时差怎么理解_懂的人自然懂,不懂的人再多解释也有时差,故事只能说给懂的人听...
  7. Outlook邮箱不简单带你重新认识它
  8. numpy 矩阵对角线_python – 使用numpy将矩阵更高的对角线清零
  9. Word打开文件错误提示用文本恢复转换器打开文件
  10. 推荐一个美中不失优雅的博客网主页(素材参考---麋鹿鲁哟)
  11. 第四集:让声音变得更有磁性 —— 共鸣训练(汇播课程演说笔记)
  12. [转]一些漢字、字體/字型、内碼、輸入法資料的整理
  13. 图的两种遍历:深度优先遍历+广度优先遍历
  14. 毕业生签三方?报到证?档案户口?
  15. 2GB显存畅玩 DeepFaceLab更新至2019.12.29
  16. h0131. 钞票 (15 分)
  17. autojs入门视频教程,Auto.js Pro安卓全分辨率免ROOT引流脚本开发零基础到进阶教程,飞云脚本学院2019年全力打造高清品质,不容错过的年度大作
  18. STM32F0系列芯片SPI发送一字节数据却输出16个CLK时钟的解决办法
  19. 谜语,睇你识几多个?
  20. 【Selenium Grid 分布式测试】Selenium Grid-简介

热门文章

  1. 在ArcGIS Desktop中选择地物要素的方法(二)
  2. JavaScript 函数看代码写结果
  3. form表单提交的时候,传过去的值是键值对的形式
  4. linux驱动之设备号与创建设备节点
  5. poj1062 昂贵的聘礼
  6. LBP及纹理表达 转自http://blog.sina.com.cn/s/blog_ba9d7d9901018k4v.html
  7. Response.Write() Alert后页面布局改变
  8. codesmith执行时提示“调用的目标发生了异常”的处理过程经验。
  9. 数据库优化之MySQL
  10. 3D重建模的初步了解