神经影像学中的python的一些基本函数的用法

os.path.join()函数:连接两个或更多的路径名组件

1.如果各组件名首字母不包含’/’,则函数会自动加上

2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃

3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾

Demo1

import os

Path1 = 'home'
Path2 = 'develop'
Path3 = 'code'

Path10 = Path1 + Path2 + Path3
Path20 = os.path.join(Path1,Path2,Path3)
print ('Path10 = ',Path10)
print ('Path20 = ',Path20)


输出

path10 = homedevelopcode
Path20 = home\develop\code

Demo2

import os

Path1 = '/home'
Path2 = 'develop'
Path3 = 'code'

Path10 = Path1 + Path2 + Path3
Path20 = os.path.join(Path1,Path2,Path3)
print ('Path10 = ',Path10)
print ('Path20 = ',Path20) 
输出

Path10 = /homedevelopcode
Path20 = /home\develop\code

Demo3

import os

Path1 = 'home'
Path2 = '/develop'
Path3 = 'code'

Path10 = Path1 + Path2 + Path3
Path20 = os.path.join(Path1,Path2,Path3)
print ('Path10 = ',Path10)
print ('Path20 = ',Path20) 

输出

Path10 = home/developcode
Path20 = /develop\code

Demo4

import os

Path1 = 'home'
Path2 = 'develop'
Path3 = '/code'

Path10 = Path1 + Path2 + Path3
Path20 = os.path.join(Path1,Path2,Path3)
print ('Path10 = ',Path10)
print ('Path20 = ',Path20 )

输出

Path10 = homedevelop/code
Path20 = /code

转:https://blog.csdn.net/hduxiejun/article/details/80289476

NiBabel包是可以对常见的医学和神经影像文件格式进行读写。

https://nipy.org/nibabel/

安装
pip install nibabel

加载相关库
import os
import numpy as np
import nibabel as nib

载入图像
example_filename = os.path.join(data_path, 'example.nii.gz')
img = nib.load(example_filename)

查看图像形状
img.shape
(611, 512, 512)

获取图像数据
img.get_data()

图像进行仿射变换
img.affine.shape

————————————————

原文链接:https://blog.csdn.net/u014657795/article/details/88790440

使用 get_fdata

可以转为float 为 dtype 的 ndarray类型的 object
get_data和get_fdata
二者的一些说明如下:

get_data(caching='fill')

Return image data from image with any necessary scaling applied

get_fdata(caching='fill', dtype=)

Return floating point image data with necessary scaling applied

简单的来说, 一个是返回原数据, 一个则是返回浮点数。
就是这么点区别

在这里可以找到 https://nipy.org/nibabel/reference/nibabel.dataobj_images.html
(也就是get_data 和 get_fdata 的一些区别)

不过有一点需要注意 , 这个get_data 函数要被取缔了:
We recommend you use the get_fdata method instead of the get_data method,
because it is easier to predict the return data type.
We will deprecate the get_data method around April 2018,
and remove it around April 2020.

If you don’t care about the predictability of the return data type,
and you want the minimum possible data size in memory,
you can replicate the array
that would be returned by img.get_data() by using np.asanyarray(img.dataobj).

————————————————

原文链接:https://blog.csdn.net/Pierce_KK/article/details/100016443

append

append() 方法用于在列表末尾添加新的对象。
https://www.runoob.com/python/att-list-append.html
该方法无返回值,但是会修改原来的列表

实例
以下实例展示了 append()函数的使用方法:

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc'];
aList.append( 2009 );
print "Updated List : ", aList;
以上实例输出结果如下:

Updated List :  [123, 'xyz', 'zara', 'abc', 2009]

列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型。
append() 方法向列表的尾部添加一个新的元素。
列表是以类的形式实现的。“创建”列表实际上是将一个类实例化。因此,列表有多种方法可以操作。extend()方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。

ndarray对象的常用属性

接下来介绍ndarray对象最常用的属性

属性 含义
T 转置,与self.transpose( )相同,如果维度小于2返回self
size 数组中元素个数
itemsize 数组中单个元素的字节长度
dtype 数组元素的数据类型对象
ndim 数组的维度
shape 数组的形状
data 指向存放数组数据的python buffer对象
flat 返回数组的一维迭代器
imag 返回数组的虚部
real 返回数组的实部
nbytes 数组中所有元素的字节长度

>>> a = np.array(range(15)).reshape(3,5)
>>> a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
>>> a.T
array([[ 0,  5, 10],
       [ 1,  6, 11],
       [ 2,  7, 12],
       [ 3,  8, 13],
       [ 4,  9, 14]])
>>> a.size
15
>>> a.itemsize
8
>>> a.ndim
2
>>> a.shape
(3, 5)
>>> a.dtype
dtype('int64')

链接:https://www.jianshu.com/p/5cc8738aa3da

np.vstack(tup)使用

沿着竖直方向将矩阵堆叠起来。
Note: the arrays must have the same shape along all but the first axis. 除开第一维外,被堆叠的矩阵各维度要一致。
示例代码:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
res = np.vstack((arr1, arr2))

结果如下

array([[1, 2, 3],
       [4, 5, 6]])

np.hstack(tup)

沿着水平方向将数组堆叠起来。
Note:
tup : sequence of ndarrays
All arrays must have the same shape along all but the second axis.
示例代码:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
res = np.hstack((arr1, arr2))

print res


arr1 = np.array([[1, 2], [3, 4], [5, 6]])
arr2 = np.array([[7, 8], [9, 0], [0, 1]])
res = np.hstack((arr1, arr2))

print res

结果如下:

[1 2 3 4 5 6]

[[1 2 7 8]
 [3 4 9 0]
 [5 6 0 1]]

————————————————

原文链接:https://blog.csdn.net/u012609509/article/details/70319293

Reshape(-1,1)

reshape(行数,列数)常用来更改数据的行列数目
reshape(-1,1)中-1被理解为unspecified value,意思是未指定为给定的
就是转换为x行,一列

参考:https://www.jianshu.com/p/d9df005636a6

shuffle() 函数

shuffle() 方法将序列的所有元素随机排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值